Compare commits

...
202 Commits
Author SHA1 Message Date
grossmj 3915918c41 Release v3.0.6 2026-01-28 22:30:36 +08:00
grossmj a72980b2d9 Sync appliances 2026-01-28 22:24:10 +08:00
grossmj 600d3d38da Fix creating Qemu disk image. Fixes #2542 2026-01-28 19:36:22 +08:00
grossmj 7f45cc6f47 Disable checking for available disk space. Ref #2548 2026-01-28 18:32:42 +08:00
grossmj abaeab6242 Upgrade greenlet and sqlalchemy dependencies 2026-01-26 19:50:42 +08:00
grossmj 1d45df6613 Upgrade dependencies 2026-01-24 21:38:58 +08:00
grossmj 69a695c9e6 Merge branch '2.2' into 3.0
# Conflicts:
#	dev-requirements.txt
#	gns3server/appliances/infix.gns3a
#	gns3server/crash_report.py
#	gns3server/run.py
#	gns3server/utils/asyncio/__init__.py
#	gns3server/version.py
#	requirements.txt
#	setup.py
2026-01-24 19:27:39 +08:00
grossmj 7b20314edb Delete random_query.py 2026-01-24 19:17:55 +08:00
grossmj 193f470eaf Upgrade dependencies 2026-01-24 19:12:58 +08:00
grossmj 4335fd7ce0 Drop Python 3.8 support 2026-01-24 18:51:44 +08:00
grossmj ef2cf277c1 Development on 2.2.57.dev1 2026-01-24 16:53:43 +08:00
grossmj 27fbe37375 Release v2.2.56 2026-01-21 22:15:12 +08:00
grossmj 7b3fd4450e Sync appliances 2026-01-17 18:37:41 +08:00
grossmj 58d1e8f0c5 Set default location of udhcpc in "/etc/network/udhcpc". Fixes #2582 2026-01-17 18:01:42 +08:00
grossmj 8ce690ce78 Upgrade pywin32 to v311 2026-01-17 17:54:27 +08:00
grossmj c676a5bf82 Development on v2.2.56.dev1 2025-12-16 16:46:31 +08:00
grossmj 60c10e7ecc Merge remote-tracking branch 'origin/2.2' into 3.0
# Conflicts:
#	.github/workflows/testing.yml
#	CHANGELOG
#	README.md
#	gns3server/appliances/infix.gns3a
#	gns3server/compute/docker/__init__.py
#	gns3server/compute/docker/docker_vm.py
#	gns3server/crash_report.py
#	gns3server/version.py
#	gns3server/web/web_server.py
#	setup.py
#	tests/controller/test_project.py
2025-11-29 11:42:02 +10:00
grossmj 37f17209d3 Release v2.2.55 2025-11-19 12:13:56 +10:00
grossmj f24134a8f5 Sync appliances 2025-11-19 12:08:29 +10:00
Jeremy Grossmann 1f2036defd Merge pull request #2575 from GNS3/bugfix/2574
Handle Docker API version requirements
2025-11-17 22:31:41 +10:00
grossmj f2aaf5ab38 Docker API version requirements and process to handle older daemons 2025-11-17 22:26:18 +10:00
Jeremy Grossmann 32f48e555c Merge pull request #2573 from GNS3/bugfix/2541
Python 3.14 compatibility
2025-11-17 11:30:42 +10:00
grossmj 942f021b58 Fix test_config.py 2025-11-17 11:26:06 +10:00
Jeremy Grossmann 4dc321454e Merge pull request #2572 from GNS3/feature/name-of-container-in-docker
Set name of container in Docker
2025-11-17 11:13:47 +10:00
grossmj 3a24318694 Use docker_name property when creating a container 2025-11-17 11:11:11 +10:00
grossmj bae6221991 Set name of container in Docker 2025-11-17 10:59:05 +10:00
grossmj c67ba6da0d Fix config tests 2025-11-17 10:21:12 +10:00
grossmj 4d23ca221f Comment out some tests in test_project.py 2025-11-16 20:52:14 +10:00
grossmj 09eab9529a Fix syntax error in testing.yml 2025-11-16 19:32:19 +10:00
grossmj 3bb23708fc Support for Python 3.14 2025-11-16 19:30:45 +10:00
grossmj 672b3c052b Downgrade aiofiles version 2025-11-16 19:25:12 +10:00
grossmj bfe7b7a735 Upgrade dependencies 2025-11-16 19:16:38 +10:00
Jeremy Grossmann d269a4c125 Merge pull request #2570 from Mytic2330/3.0-patch3
Fixed Connection closed when exporting a running project
2025-11-04 04:07:01 +01:00
Jeremy Grossmann 8ada95b9fd Merge pull request #2569 from Mytic2330/3.0
Fix database pool error and non-ASCII character project export
2025-11-04 04:05:56 +01:00
Bine d5f360c176 Update projects.py 2025-10-18 19:28:15 +02:00
Bine e817228280 Fix non-ASCII characters in project names 2025-10-18 18:10:24 +02:00
BineandUfi 4a059be480 Increase DB engine pool size and max overflow
As described in #2568 when multiple clients connect simultaneously, an excessive number of database pool connections are created. This leads to resource exhaustion and connection management issues.

We have introduced the pool_size and max_overflow parameters to better control the database connection pool.
These parameters ensure the database can handle a sufficient number of concurrent connections without over-allocating resources.

Added pool_size and max_overflow arguments to the database initialization.

This change overrides the default initialization configuration where the temporary fix was applied.

Co-Authored-By: Ufi <86113085+ufiking@users.noreply.github.com>
2025-10-17 22:17:10 +02:00
Jeremy Grossmann 230866890e Merge pull request #2556 from GNS3/bugfix/2543
Enable ip cef in IOU L2 and IOU L3 base configs
2025-09-01 18:59:10 +02:00
grossmj 355cfb7571 Enable ip cef in IOU L2 and IOU L3 base configs 2025-09-01 18:55:36 +02:00
grossmj 8dddfe056e Merge branch 'master' into 2.2 2025-09-01 18:42:02 +02:00
Jeremy Grossmann 9c33827de3 Merge pull request #2555 from GNS3/update-gh-docker-build
Update docker-build.yml
2025-09-01 18:28:04 +02:00
grossmj a34fa53823 Update tags 2025-09-01 18:27:04 +02:00
grossmj 565a76ae27 Only build and push Docker image when releasing a new version 2025-09-01 18:23:52 +02:00
grossmj dc9c3b1c5d Fix pushing Docker image to Docker hub 2025-09-01 18:17:52 +02:00
grossmj a394fb71dc Update method to login to ghcr.io 2025-09-01 17:55:46 +02:00
grossmj 6cbf3baa1b Update docker-build.yml 2025-09-01 17:49:34 +02:00
grossmj 10322135e3 Upgrade sentry-sdk package 2025-08-30 21:51:20 +02:00
grossmj 12d1d04462 Update security issues again in README.md. Fixes #2535 2025-08-29 18:28:14 +02:00
grossmj 8b4c2f5e90 Update security issues in README.md. Fixes #2535 2025-08-29 18:25:57 +02:00
grossmj 1ed549fdb1 Upgrade requests dev dependency 2025-08-29 14:01:19 +02:00
grossmj 845cad35f0 Upgrade pydantic, fastapi & sqlalchemy dependencies 2025-08-29 13:55:00 +02:00
grossmj 31613630cf Update pyproject.toml to support LICENSE file 2025-06-09 22:24:23 +02:00
Jeremy Grossmann aaffc731ee Merge pull request #2538 from Nick1200000/enhancement/docker-build
Add automated Docker build and publish workflow
2025-06-09 22:14:11 +02:00
Nick1200000 5ce55aff02 Resolving the Error 2025-06-08 14:11:01 +05:30
Nick1200000 aa1c0bb557 Resolving the Errors 2025-06-08 13:38:35 +05:30
Nick1200000 25bc2dce57 Resolving the Errors 2025-06-08 13:30:49 +05:30
Nick1200000 7e35d164dc Resolving the Errors 2025-06-08 13:26:40 +05:30
Nick1200000 8666ffaff3 Resolving the Errors 2025-06-08 13:24:38 +05:30
Nick1200000 020f6a123d Docker build CI/CD pipeline 2025-06-07 18:16:47 +05:30
grossmj 232b9c2806 Fix tests 2025-05-25 17:35:45 +02:00
Jeremy Grossmann f260f6e2b4 Merge pull request #2531 from PsyBlade42/docker-vnc-name
use GNS3 node name as vnc Desktop name
2025-05-23 14:26:08 +02:00
Thomas Schmidt a7108e1592 use GNS3 node name as vnc Desktop name
Most VNC clients use the Desktop name in their window title.
Currently this defaults to user@host which means all docker vnc
connections have identical window names of e.g.
  SSVNC: gns3@gns3server

This uses the node name instead.
2025-05-22 13:13:47 +02:00
grossmj 975ca254fd Release v3.0.5 2025-05-14 19:11:44 +02:00
grossmj 89cf5ea8e7 Bundle web-ui v3.0.5 2025-05-14 19:06:42 +02:00
grossmj bfbe2bf885 Sync appliances 2025-05-14 18:55:51 +02:00
grossmj 5c036dfd90 Upgrade uvicorn and pydantic 2025-05-14 18:54:55 +02:00
grossmj 2fbfe5385a Use Ubuntu 24.04 LTS in Dockerfile. Ref #2523 2025-05-14 18:30:43 +02:00
grossmj 2cdaa1cd06 Fix tests 2025-05-14 17:19:18 +02:00
grossmj f2080979a1 Fix tests 2025-05-14 16:56:46 +02:00
grossmj df576f0668 Merge remote-tracking branch 'origin/2.2' into 3.0
# Conflicts:
#	gns3server/compute/qemu/qemu_vm.py
#	gns3server/schemas/template.py
2025-05-14 16:42:59 +02:00
grossmj c2c89b0ff3 Add missing 'nat' template type in schema. Fixes #2529 2025-05-13 20:52:44 +02:00
grossmj ef3570dc95 Merge branch 'master' into 2.2 2025-05-13 20:48:59 +02:00
grossmj 2bf3eff143 Remove debug message in tests 2025-05-13 20:47:38 +02:00
Jeremy Grossmann add8c4e8a2 Merge pull request #2526 from emmanuel-ferdman/master
Resolve deprecation warnings of regex library
2025-04-30 14:14:37 +07:00
Jeremy Grossmann 53eac771d6 Merge pull request #2528 from tobiasstein/fix-pci-bridges
Fix adding pci_bridges to qemu vms
2025-04-30 14:09:22 +07:00
grossmj 2b96e54629 Fix tests and require Qemu version >= 2.4 2025-04-30 13:38:52 +07:00
Tobias Stein cdf819f820 Fix adding pci_bridges to qemu vms
* Offset pci_device_id for network devices by 32 (formerly 4)
  to reserve first 32 IDs for non-netdev devices
  * This implies a new pci_bridge for the netdevs and
    the pci_device_ids starting at 0 (using modulo)
  * Fixes a bug in the creation of the qemu command
    when the number of qemu pcie devices (storage_controller, disks, …)
    was greater than 4 and the number of network devices
    saturated the 32 pcie ids of the root bridge
    causing qemu not to start.
2025-04-28 21:07:52 +02:00
Emmanuel Ferdman c05e6f4de4 Resolve deprecation warnings of regex library
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-04-26 00:15:16 -07:00
grossmj d9dcc2738d Merge remote-tracking branch 'origin/2.2' into 3.0
# Conflicts:
#	CHANGELOG
#	Dockerfile
#	README.md
#	gns3server/appliances/infix.gns3a
#	gns3server/compute/docker/docker_vm.py
#	gns3server/compute/qemu/qemu_vm.py
#	gns3server/controller/gns3vm/virtualbox_gns3_vm.py
#	gns3server/crash_report.py
#	gns3server/static/web-ui/index.html
#	gns3server/static/web-ui/main.9bcf455e62558dedfd48.js
#	gns3server/version.py
2025-04-21 20:13:31 +07:00
grossmj e32576d5ed Development on 2.2.55.dev1 2025-04-21 19:35:13 +07:00
Jeremy Grossmann bd3657d8f3 Merge pull request #2524 from GNS3/release/v2.2.54
Release v2.2.54
2025-04-21 19:30:57 +07:00
grossmj 4418d6bb2b Release v2.2.54 2025-04-21 17:15:22 +07:00
grossmj dbcafdd314 Merge branch 'master' into 2.2 2025-04-21 17:08:59 +07:00
grossmj 4dd1803a70 Bundle web-ui v2.2.54 2025-04-21 16:40:59 +07:00
grossmj 99272fb7e0 Sync appliances 2025-04-21 16:30:32 +07:00
grossmj a24d2e25ed Add new method to find the IP address of a VBox GNS3 VM + allow NAT Network 2025-04-21 16:29:32 +07:00
grossmj a5a663bc99 Remove OVMF_CODE_4M.secboot.fd and associated code 2025-04-18 17:31:31 +07:00
grossmj 2b7eb91694 Add edk2-stable202502 UEFI firmwares and try to first use firmwares from the ovmf package if installed. Fixes #2494 2025-04-18 17:13:29 +07:00
grossmj 684770a220 Prettify TPM error message 2025-04-18 15:25:50 +07:00
grossmj f6546bf1de Fix bug in qemu_stdout message 2025-04-18 15:19:06 +07:00
grossmj 355b97398b Reduce matching error for TPM result 2025-04-18 15:13:41 +07:00
grossmj 6242a0be80 Try to detect swtpm and AppArmor issue. Ref https://github.com/GNS3/gns3-gui/issues/3725 2025-04-18 15:06:49 +07:00
grossmj 18413c923c Development on 2.2.54.dev1 2025-04-18 15:05:34 +07:00
grossmj ffd628902c Fix Docker logs decoding. Ref #2522 2025-04-18 13:58:56 +07:00
grossmj ca34053125 Add delay after starting a Docker container and adding connections in uBridge. Ref #2522 2025-04-18 13:50:20 +07:00
grossmj d06f93e772 Fix TypeError when reading Docker container logs. Ref #2522 2025-04-18 13:47:29 +07:00
grossmj 90cf73e434 Fix tests 2025-04-18 13:38:01 +07:00
grossmj aa8ccf4f82 Allow an image to be uploaded to the controller again even if it is already in the database 2025-04-17 19:07:22 +07:00
grossmj 0826b9c259 Fix controller not reporting an error if invalid options are passed to Qemu command line. Fixes #2517 2025-04-17 19:00:52 +07:00
grossmj 0e8d969cd2 Merge branch '2.2' into 3.0
# Conflicts:
#	gns3server/compute/docker/__init__.py
#	gns3server/compute/docker/docker_vm.py
#	requirements.txt
2025-04-16 17:53:44 +07:00
grossmj 0e89ff56a8 Replace "Docker hub" by "Docker repository" because it is possible to use different repositories 2025-04-16 17:42:40 +07:00
grossmj ffb5bc7ffd Upgrade aiohttp to v3.11.16 2025-04-16 17:09:09 +07:00
grossmj f00f21c4bd Upgrade dependencies 2025-04-16 17:08:08 +07:00
grossmj 773076c40e Fix unable to add NAT cloud after configuring “allowed_interfaces” in configuration file. Fixes #2508 2025-04-16 16:04:57 +07:00
grossmj 5019167098 Fix interface information API endpoint for Cloud/NAT devices 2025-04-16 15:26:56 +07:00
grossmj f525916195 Merge remote-tracking branch 'origin/3.0' into 3.0 2025-04-16 14:39:59 +07:00
grossmj 2ac3e0b39f Upgrade dependencies 2025-04-16 14:39:36 +07:00
Jeremy Grossmann e532c83538 Merge pull request #2518 from markparonyan/get-link-ifaces
Get iface/udp tunnel from links with Cloud,Nat
2025-03-23 20:10:23 +07:00
Mark Paronyan f21887dbab tests(get_iface): add unittests 2025-03-23 14:28:58 +00:00
Mark Paronyan bab173ee52 feat(get_iface): add type information in response 2025-03-23 14:28:27 +00:00
Mark Paronyan ea2856289a feat: add endpoint to get iface/udp tunnel from links with Cloud,Nat 2025-03-23 13:46:27 +00:00
grossmj 8e6f5d2b57 Merge branch '2.2' into 3.0
# Conflicts:
#	requirements.txt
2025-03-18 21:34:43 +07:00
grossmj 2e9127449c Upgrade Jinja2 to v3.1.6. Fixes #2515 2025-03-18 21:33:31 +07:00
grossmj ee9f974362 Fix packet capture for links connected to a cloud node. Fixes #2513 2025-03-16 21:12:33 +07:00
grossmj c9231d7b83 Upgrade dependencies 2025-03-16 20:26:26 +07:00
Jeremy Grossmann 483719568f Merge pull request #2511 from NAKNAO-nnct/feature/update-dockerfile-ubuntu-2404
Update Dockerfile base image to Ubuntu 24.04
2025-03-08 20:26:12 +07:00
NAKNAO-nnct 018598a300 refactor 2025-03-08 20:22:06 +09:00
NAKNAO-nnct e262a46cfd rm space 2025-03-08 20:19:37 +09:00
NAKNAO-nnct 00bf1c028b Update README to Run Docker Compose 2025-03-08 14:11:42 +09:00
NAKNAO-nnct 21ebb934f4 add compose.yaml 2025-03-08 14:08:42 +09:00
NAKNAO-nnct 2ecd2cfe3b update Ubuntu24.04 2025-03-08 13:59:05 +09:00
Jeremy Grossmann ce4b3091dd Merge pull request #2507 from GNS3/fix-remote-install-script
Improvements for remote-install.sh
2025-03-03 05:55:42 +07:00
grossmj f722816849 Improvements for remote-install.sh
* Use apt-add-repository to install repository
* Add option to not upgrade the system
* Check if Python version is >= 3.9 when installing from ppa-v3 repository
2025-03-02 22:27:53 +07:00
Jeremy Grossmann 4cb38b23eb Merge pull request #2506 from FedericoTorres233/patch-1
Check if remote-install.sh is being run as root
2025-03-02 16:14:33 +08:00
Federico Torres f3e46227d8 fix: check if remote-install.sh is being run as root 2025-03-01 16:56:21 -03:00
grossmj 3ba109c651 Development on 3.0.5.dev1 2025-02-25 22:39:38 +08:00
grossmj 3a1ad8c08b Release v3.0.4 2025-02-25 18:24:26 +08:00
grossmj edc855dcb5 Sync appliances 2025-02-25 17:12:28 +08:00
grossmj 59c2eeb536 Upgrade aiohttp to v3.11.13 2025-02-25 19:01:00 +10:00
grossmj a7f2b1fddc Require minimum 8 characters for passwords 2025-02-23 12:05:19 +10:00
grossmj 1f4071af93 Bundle web-ui v3.0.4 2025-02-23 12:04:22 +10:00
grossmj dbdb4a53c7 Sync appliances 2025-02-22 21:18:41 +10:00
grossmj 2659ab2c35 Upgrade dependencies 2025-02-22 21:10:33 +10:00
grossmj 0c3f6712b4 Fix auto idle-pc for IOS templates 2025-02-22 20:14:13 +10:00
grossmj 9122cab6c1 Update schemas to add constraints for values like ram, nvram etc. 2025-02-04 10:39:55 +10:00
grossmj 2516b1952c Install custom symbols. Fixes #2492 2025-01-29 18:32:04 +10:00
grossmj f2bb785037 Remove txt files in custom symbols 2025-01-29 18:25:06 +10:00
grossmj fc938a069b Sync appliances 2025-01-29 18:24:04 +10:00
grossmj 4fd41991db Fix VMware add ubridge connection. Fixes #2490 2025-01-27 12:12:43 +10:00
grossmj cfc4bb371a Upgrade FastAPI to v0.115.7 2025-01-23 13:32:11 +10:00
grossmj ce59e84e13 Development on 3.0.4 2025-01-23 13:31:32 +10:00
grossmj b5e2bb1561 Release v3.0.3 2025-01-22 19:06:42 +10:00
grossmj 3003ed1465 Bundle web-ui v3.0.3 2025-01-22 18:57:21 +10:00
grossmj 09774a3a56 Merge branch '2.2' into 3.0
# Conflicts:
#	CHANGELOG
#	gns3server/compute/virtualbox/virtualbox_vm.py
#	gns3server/controller/compute.py
#	gns3server/crash_report.py
#	gns3server/static/web-ui/index.html
#	gns3server/static/web-ui/main.c83939cdfe3af0ec27df.js
#	gns3server/version.py
#	gns3server/web/web_server.py
#	requirements.txt
#	tests/controller/test_compute.py
2025-01-22 18:37:17 +10:00
Jeremy Grossmann 185cd01e19 Merge pull request #2488 from GNS3/release/v2.2.53
Release v2.2.53
2025-01-21 09:47:43 +07:00
grossmj 369fcaa512 Release v2.2.53 2025-01-21 11:52:11 +10:00
grossmj 7b7d3d676f Bundle web-ui v2.2.53 2025-01-21 11:43:11 +10:00
grossmj d1186b2acc Sync appliances 2025-01-21 11:29:28 +10:00
grossmj bd58196817 Add more information when patching .vbox file. Ref https://github.com/GNS3/gns3-gui/issues/3542 2025-01-20 13:22:22 +10:00
Jeremy Grossmann b3a822df8f Merge pull request #2487 from GNS3/upgrade-tests
Refactor tests and upgrade dev package requirements
2025-01-17 16:38:32 +07:00
grossmj ba4e0c945d Refactor tests and upgrade dev package requirements 2025-01-17 19:12:44 +10:00
Jeremy Grossmann f6725a37dd Merge pull request #2486 from GNS3/feature/args-parsing
Refactor command line arguments parsing
2025-01-17 08:26:05 +07:00
grossmj 8e96c4c2e8 Refactor command line arguments parsing 2025-01-17 07:57:42 +07:00
grossmj 035a104957 Fix capture on IOU/IOL links. Fixes #2477 2025-01-11 18:46:55 +07:00
grossmj 54c0b383cb Use Python 3.9 to publish API documentation 2025-01-08 00:03:18 +07:00
grossmj 7c0384a8d4 Development on 3.0.3.dev1 2025-01-07 11:12:02 +07:00
grossmj 469bd692a0 Release v3.0.2 2025-01-03 21:44:00 +07:00
grossmj d34c3a0ac7 Bundle web-ui v3.0.2 2025-01-03 21:40:11 +07:00
Jeremy Grossmann fb3409c1a1 Merge pull request #2474 from GNS3/install-all-images
Support to create templates based on image checksums
2025-01-03 21:38:59 +07:00
grossmj 08693871ae Support to create templates based on image checksums. 2025-01-03 21:35:14 +07:00
Jeremy Grossmann f5ea20347e Merge pull request #2472 from GNS3/builtin-disks-improvements
Improvements for built-in disks
2025-01-03 20:01:06 +07:00
grossmj ac4c5f5985 Improve tests for pruning images 2025-01-03 19:56:41 +07:00
grossmj e17a79e261 Fix tests 2025-01-02 23:17:55 +07:00
grossmj 4758431c76 Improvements for built-in disks
* Checksum is updated in the database for updated disks.
* It is not possible to prune them.
2025-01-02 23:10:51 +07:00
Jeremy Grossmann b472f6dbf8 Merge pull request #2471 from GNS3/watchdog-migration
Watchdog migration
2024-12-31 17:30:24 +07:00
grossmj b39c7541fb Add timeout for waiting watchdog observer thread to complete 2024-12-31 17:24:19 +07:00
grossmj 82779d816f Use watchdog instead of watchfiles to monitor for new images on the file system 2024-12-31 17:19:32 +07:00
grossmj ccc8974d92 Fix tests 2024-12-30 16:14:33 +07:00
grossmj 0090ff3722 Increase timeout to run compute HTTP queries. Fixes #2461 2024-12-30 16:10:04 +07:00
Jeremy Grossmann 96c6805ace Merge pull request #2469 from GNS3/joserfc-migration
Replace python-jose library by joserfc
2024-12-30 16:02:17 +07:00
grossmj efb84b3063 Add back ValidationError 2024-12-30 15:59:01 +07:00
Jeremy Grossmann 0be45c7da2 Merge branch '3.0' into joserfc-migration 2024-12-30 15:52:54 +07:00
Jeremy Grossmann a4222b4d03 Merge pull request #2470 from GNS3/drop-python3.8
Drop Python 3.8
2024-12-30 15:51:23 +07:00
grossmj 5f75fc7573 Add greenlet dependency 2024-12-30 15:45:17 +07:00
grossmj 5269d4386c Drop Python 3.8 2024-12-30 15:36:40 +07:00
grossmj 9d6cea665a Replace python-jose library by joserfc 2024-12-30 15:25:24 +07:00
grossmj 2c727c6bd2 Use 'allow_methods="*"' in aiohttp_cors.ResourceOptions(). Fixes #2459 2024-12-30 11:06:19 +07:00
grossmj 13b0caef4f Upgrade dependencies 2024-12-30 10:49:35 +07:00
grossmj 8b57fbaa0a Downgrade uvicorn to v0.33.0 2024-12-28 18:23:46 +07:00
grossmj d4a9a21af9 Upgrade dependencies 2024-12-28 18:21:18 +07:00
grossmj 8a900588ca Merge branch '2.2' into 3.0 2024-12-28 18:04:25 +07:00
grossmj 8ed1fa6ad5 Merge branch 'master' into 2.2 2024-12-28 18:03:39 +07:00
Jeremy Grossmann a689a55937 Merge pull request #2467 from GNS3/update-remote-install-script
Use iptables to block IOU home call
2024-12-28 18:01:25 +07:00
grossmj 1c0b0ae423 Remove blocking IOU phone home call. 2024-12-28 18:00:22 +07:00
grossmj ad7813d04b Use iptables to block IOU home call 2024-12-28 17:50:59 +07:00
grossmj 654b84cb7b Release v3.0.1 2024-12-27 21:05:24 +07:00
grossmj fc1acc58de Sync appliances 2024-12-27 21:01:23 +07:00
grossmj 07ac4f5834 Bundle web-ui v3.0.1 2024-12-27 21:00:58 +07:00
grossmj 249bf89b7e Allow for upgrading built-in disks 2024-12-26 23:04:47 +07:00
grossmj efc3ff62b5 Fix config parsing when configuring server protocol. Fixes https://github.com/GNS3/gns3-gui/issues/3681 2024-12-26 16:36:52 +07:00
grossmj a521e61efc Update empty Qemu disks with correct MD5 checksums 2024-12-23 22:45:36 +07:00
grossmj 9492fd0671 Fix tests 2024-12-22 22:34:23 +07:00
grossmj 512407939d Increase timeout to run compute HTTP queries. Fixes #3453 2024-12-22 22:29:56 +07:00
Jeremy Grossmann 685bf88005 Merge pull request #2457 from GNS3/update-remote-install-script
Update remote install script
2024-12-22 22:07:33 +07:00
grossmj a1090a3da8 Fallback when cannot use deb822 format 2024-12-22 21:52:18 +07:00
grossmj c8e5b41f39 Add compatibility for earlier Ubuntu versions 2024-12-22 21:29:05 +07:00
grossmj 94b5d3e636 Update remote-install.sh to support a custom repository and the deb822 source format 2024-12-22 20:26:24 +07:00
Jeremy Grossmann e94b55e3bf Merge pull request #2452 from GNS3/release/v2.2.52
release/v2.2.52
2024-12-02 11:36:09 +10:00
Jeremy Grossmann 1a6a729736 Merge pull request #2442 from Xatrekak/master
Fixed issues with installing on Ubuntu 24.04 via remote-install.sh
2024-11-08 10:02:43 +10:00
Dustin 77c356c82c Update remote-install.sh
Fixes for Ubuntu 24.04
2024-11-07 18:15:52 -05:00
Dustin b4819b5500 Update remote-install.sh
Fixing changes for Ubuntu 24.04
2024-11-07 17:44:42 -05:00
Jeremy Grossmann 11a9451098 Merge pull request #2440 from GNS3/release/v2.2.51
release/v2.2.51
2024-11-07 23:13:03 +10:00
197 changed files with 21447 additions and 6836 deletions

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
name: Build and Push Docker Image
on:
workflow_dispatch:
push:
tags:
- v2.*
- v3.*
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: docker.io
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push to GitHub Container Registry
run: |
docker build -t ghcr.io/$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]'):latest .
docker push ghcr.io/$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]'):latest
- name: Build and push to Docker Hub
run: |
docker build -t gns3/${{ github.event.repository.name }}:latest .
docker push gns3/${{ github.event.repository.name }}:latest
@@ -18,7 +18,7 @@ jobs:
ref: "gh-pages"
- uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9
- name: Merge changes from 3.0 branch
run: |
git config user.name github-actions
+1 -5
View File
@@ -18,11 +18,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
#include:
# only test with Python 3.10 on Windows
# - os: windows-latest
# python-version: "3.10"
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
+115 -1
View File
@@ -1,5 +1,120 @@
# Change Log
## 3.0.6 28/01/2026
* Sync appliances
* Fix creating Qemu disk image. Fixes #2542
* Disable checking for available disk space. Ref #2548
* Set default location of udhcpc in "/etc/network/udhcpc". Fixes #2582
* Support for Python 3.14
* Fix non-ASCII characters in project names
* Increase DB engine pool size and max overflow
* Enable ip cef in IOU L2 and IOU L3 base configs
## 2.2.56 21/01/2026
* Set default location of udhcpc in "/etc/network/udhcpc". Fixes #2582
* Upgrade pywin32 to v311
## 2.2.55 19/11/2025
* Docker API version requirements and process to handle older daemons
* Use docker_name property when creating a container
* Set name of container in Docker
* Support for Python 3.14
* Enable ip cef in IOU L2 and IOU L3 base configs
* Only build and push Docker image when releasing a new version
* Fix pushing Docker image to Docker hub
* Update security issues in README.md. Fixes #2535
* Add missing 'nat' template type in schema. Fixes #2529
* Resolve deprecation warnings of regex library
## 3.0.5 14/05/2025
* Bundle web-ui v3.0.5
* Sync appliances
* Use Ubuntu 24.04 LTS in Dockerfile. Ref #2523
* Fix tests and require Qemu version >= 2.4
* Fix adding pci_bridges to qemu vms
* Resolve deprecation warnings of regex library
* Remove OVMF_CODE_4M.secboot.fd and associated code
* Add edk2-stable202502 UEFI firmwares and try to first use firmwares from the ovmf package if installed. Fixes #2494
* Prettify TPM error message
* Fix bug in qemu_stdout message
* Try to detect swtpm and AppArmor issue. Ref https://github.com/GNS3/gns3-gui/issues/3725
* Fix Docker logs decoding. Ref #2522
* Add delay after starting a Docker container and adding connections in uBridge. Ref #2522
* Fix TypeError when reading Docker container logs. Ref #2522
* Allow an image to be uploaded to the controller again even if it is already in the database
* Fix controller not reporting an error if invalid options are passed to Qemu command line. Fixes #2517
* Replace "Docker hub" by "Docker repository" because it is possible to use different repositories
* Fix unable to add NAT cloud after configuring “allowed_interfaces” in configuration file. Fixes #2508
* Fix interface information API endpoint for Cloud/NAT devices
* Upgrade Jinja2 to v3.1.6. Fixes #2515
* Fix packet capture for links connected to a cloud node. Fixes #2513
* fix: check if remote-install.sh is being run as root
## 2.2.54 21/04/2025
* Bundle web-ui v2.2.54
* Add new method to find the IP address of a VBox GNS3 VM + allow NAT Network
* Add edk2-stable202502 UEFI firmwares and try to first use firmwares from the ovmf package if installed. Fixes #2494
* Try to detect swtpm and AppArmor issue. Ref https://github.com/GNS3/gns3-gui/issues/3725
* Fix Docker logs decoding. Ref #2522
* Add delay after starting a Docker container and adding connections in uBridge. Ref #2522
* Fix TypeError when reading Docker container logs. Ref #2522
* Replace "Docker hub" by "Docker repository" because it is possible to use different repositories
* Upgrade dependencies
* Improvements for remote-install.sh
## 3.0.4 25/02/2025
* Require minimum 8 characters for passwords
* Bundle web-ui v3.0.4
* Upgrade dependencies
* Fix auto idle-pc for IOS templates
* Update schemas to add constraints for values like ram, nvram etc.
* Install custom symbols. Fixes #2492
* Fix VMware add ubridge connection. Fixes #2490
## 3.0.3 22/01/2025
* Bundle web-ui v3.0.3
* Refactor command line arguments parsing
* Fix capture on IOU/IOL links. Fixes #2477
* Use Python 3.9 to publish API documentation
* Upgrade dependencies
## 2.2.53 21/01/2025
* Bundle web-ui v2.2.53
* Add more information when patching .vbox file. Ref https://github.com/GNS3/gns3-gui/issues/3542
* Increase timeout to run compute HTTP queries. Fixes #2461
* Use 'allow_methods="*"' in aiohttp_cors.ResourceOptions(). Fixes #2459
* Upgrade dependencies
* Update remote-install.sh to support a custom repository and the deb822 source format
* Fix: do not use the iourc file if IOU licence check is not enabled
## 3.0.2 03/01/2025
* Bundle web-ui v3.0.2
* Support to create templates based on image checksums.
* Improvements for installing built-in disks.
* Use watchdog instead of watchfiles to monitor for new images on the file system
* Drop Python 3.8
* Replace python-jose library by joserfc
* Upgrade dependencies
* Remove blocking IOU phone home call.
## 3.0.1 27/12/2024
* Bundle web-ui v3.0.1
* Allow for upgrading built-in disks
* Fix config parsing when configuring server protocol. Fixes https://github.com/GNS3/gns3-gui/issues/3681
* Update empty Qemu disks with correct MD5 checksums
* Increase timeout to run compute HTTP queries. Fixes #3453
## 3.0.0 20/12/2024
* Bundle web-ui v3.0.0
@@ -12,7 +127,6 @@
## 2.2.52 02/12/2024
* Bundle web-ui v2.2.52
* Sync appliances
* Remove restrictions based on file extension when listing images and fix ELF header checks
* Fix use project name instead of ID for fast duplication when running local server. Fixes #2446
* Overwrite user resources when the originals have changed.
+2 -2
View File
@@ -1,4 +1,4 @@
FROM ubuntu:focal
FROM ubuntu:noble
WORKDIR /gns3server
@@ -34,4 +34,4 @@ COPY . /gns3server
RUN mkdir -p ~/.config/GNS3/3.0/
RUN cp scripts/gns3_server.conf ~/.config/GNS3/3.0/
RUN python3 -m pip install .
RUN python3 -m pip install --break-system-packages .
+6
View File
@@ -99,6 +99,12 @@ Alternatively, you can run the GNS3 server in a container
bash scripts/docker_dev_server.sh
```
#### use Docker Compose
``` {.bash}
docker compose up -d
```
### Running tests
First, install the development dependencies:
+7
View File
@@ -0,0 +1,7 @@
services:
gen3-server:
build:
context: .
dockerfile: Dockerfile
ports:
- "8001:3080"
+7 -7
View File
@@ -1,7 +1,7 @@
pytest==8.3.3
flake8==7.1.1
pytest-timeout==2.3.1
pytest-asyncio==0.21.2
requests==2.32.3
httpx==0.27.2 # version 0.24.1 is required by httpx_ws
httpx_ws==0.6.2
pytest==8.4.2 # version 8.4.2 is the last one supporting Python 3.9
flake8==7.3.0
pytest-timeout==2.4.0
pytest-asyncio==0.26.0 # upgrading leads to stuck / failed tests
requests==2.32.5
httpx==0.28.1
httpx_ws==0.7.1 # upgrading leads to failures in tests
+1 -1
View File
@@ -232,7 +232,7 @@ async def stop_cloud_capture(
await node.stop_capture(port_number)
@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/pcap")
@router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream")
async def stream_pcap_file(
*,
adapter_number: int = Path(..., ge=0, le=0),
+1 -1
View File
@@ -284,7 +284,7 @@ async def start_iou_node_capture(
"""
pcap_file_path = os.path.join(node.project.capture_working_directory(), node_capture_data.capture_file_name)
await node.start_capture(adapter_number, pcap_file_path)
await node.start_capture(adapter_number, port_number, pcap_file_path)
return {"pcap_file_path": str(pcap_file_path)}
+1 -1
View File
@@ -188,7 +188,7 @@ async def vmware_vms(compute_id: Union[str, UUID]) -> List[schemas.ComputeVMware
@router.post("/{compute_id}/dynamips/auto_idlepc")
async def dynamips_autoidlepc(compute_id: Union[str, UUID], auto_idle_pc: schemas.AutoIdlePC) -> str:
async def dynamips_autoidlepc(compute_id: Union[str, UUID], auto_idle_pc: schemas.AutoIdlePC):
"""
Find a suitable Idle-PC value for a given IOS image. This may take a few minutes.
"""
+65 -27
View File
@@ -27,11 +27,11 @@ from fastapi.encoders import jsonable_encoder
from starlette.requests import ClientDisconnect
from sqlalchemy.orm.exc import MultipleResultsFound
from typing import List, Optional
from gns3server import schemas
from gns3server import schemas
from gns3server.config import Config
from gns3server.compute.qemu import Qemu
from gns3server.utils.images import InvalidImageError, write_image, read_image_info, default_images_directory
from gns3server.utils.images import InvalidImageError, write_image, read_image_info, default_images_directory, get_builtin_disks
from gns3server.db.repositories.images import ImagesRepository
from gns3server.db.repositories.templates import TemplatesRepository
from gns3server.db.repositories.rbac import RbacRepository
@@ -51,7 +51,6 @@ log = logging.getLogger(__name__)
router = APIRouter()
@router.post(
"/qemu/{image_path:path}",
response_model=schemas.Image,
@@ -97,7 +96,13 @@ async def create_qemu_image(
await Qemu.instance().create_disk_image(disk_image_path, options)
image_info = await read_image_info(disk_image_path, "qemu")
return await images_repo.add_image(**image_info)
image = await images_repo.get_image(disk_image_path)
if image:
# the image has already been added to the database
return image
else:
return await images_repo.add_image(**image_info)
@router.get(
"",
@@ -149,11 +154,6 @@ async def upload_image(
if os.path.commonprefix([base_images_directory, full_path]) != base_images_directory:
raise ControllerForbiddenError(f"Cannot write image, '{image_path}' is forbidden")
image = await images_repo.get_image(image_path)
if image:
log.warning(f"Image '{image_path}' already exists")
return image
try:
allow_raw_image = Config.instance().settings.Server.allow_raw_images
image = await write_image(image_path, full_path, request.stream(), images_repo, allow_raw_image=allow_raw_image)
@@ -175,6 +175,61 @@ async def upload_image(
return image
@router.delete(
"/prune",
status_code=status.HTTP_204_NO_CONTENT,
dependencies=[Depends(has_privilege("Image.Allocate"))]
)
async def prune_images(
images_repo: ImagesRepository = Depends(get_repository(ImagesRepository)),
) -> None:
"""
Prune images not attached to any template.
Required privilege: Image.Allocate
"""
skip_images = get_builtin_disks()
await images_repo.prune_images(skip_images)
@router.post(
"/install",
status_code=status.HTTP_204_NO_CONTENT,
dependencies=[Depends(has_privilege("Image.Allocate"))]
)
async def install_images(
images_repo: ImagesRepository = Depends(get_repository(ImagesRepository)),
templates_repo: TemplatesRepository = Depends(get_repository(TemplatesRepository))
) -> None:
"""
Attempt to automatically create templates based on image checksums.
Required privilege: Image.Allocate
"""
skip_images = get_builtin_disks()
images = await images_repo.get_images()
for image in images:
if skip_images and image.filename in skip_images:
log.debug(f"Skipping image '{image.path}' for image installation")
continue
templates = await images_repo.get_image_templates(image.image_id)
if templates:
# the image is already used by a template
log.warning(f"Image '{image.path}' is used by one or more templates")
continue
await Controller.instance().appliance_manager.install_appliances_from_image(
image.path,
image.checksum,
images_repo,
templates_repo,
None,
None,
os.path.dirname(image.path)
)
@router.get(
"/{image_path:path}",
response_model=schemas.Image,
@@ -218,7 +273,7 @@ async def delete_image(
image = await images_repo.get_image(image_path)
except MultipleResultsFound:
raise ControllerBadRequestError(f"Image '{image_path}' matches multiple images. "
f"Please include the relative path of the image")
f"Please include the absolute path of the image")
if not image:
raise ControllerNotFoundError(f"Image '{image_path}' not found")
@@ -236,20 +291,3 @@ async def delete_image(
success = await images_repo.delete_image(image_path)
if not success:
raise ControllerError(f"Image '{image_path}' could not be deleted")
@router.post(
"/prune",
status_code=status.HTTP_204_NO_CONTENT,
dependencies=[Depends(has_privilege("Image.Allocate"))]
)
async def prune_images(
images_repo: ImagesRepository = Depends(get_repository(ImagesRepository)),
) -> None:
"""
Prune images not attached to any template.
Required privilege: Image.Allocate
"""
await images_repo.prune_images()
+52 -1
View File
@@ -24,7 +24,7 @@ import aiohttp
from fastapi import APIRouter, Depends, Request, status
from fastapi.responses import StreamingResponse
from fastapi.encoders import jsonable_encoder
from typing import List
from typing import List, Union
from uuid import UUID
from gns3server.controller import Controller
@@ -285,3 +285,54 @@ async def stream_pcap(request: Request, link: Link = Depends(dep_link)) -> Strea
raise ControllerError(f"Client error received when receiving pcap stream from compute: {e}")
return StreamingResponse(compute_pcap_stream(), media_type="application/vnd.tcpdump.pcap")
@router.get(
"/{link_id}/iface",
response_model=Union[schemas.UDPPortInfo, schemas.EthernetPortInfo],
dependencies=[Depends(has_privilege("Link.Audit"))]
)
async def get_iface(link: Link = Depends(dep_link)) -> Union[schemas.UDPPortInfo, schemas.EthernetPortInfo]:
"""
Return iface info for links to Cloud or NAT devices.
Required privilege: Link.Audit
"""
ifaces_info = {}
for node_data in link._nodes:
node = node_data["node"]
if node.node_type not in ("cloud", "nat"):
continue
port_number = node_data["port_number"]
compute = node.compute
project_id = link.project.id
response = await compute.get(f"/projects/{project_id}/{node.node_type}/nodes/{node.id}")
if "ports_mapping" not in response.json:
continue
ports_mapping = response.json["ports_mapping"]
for port in ports_mapping:
port_num = port.get("port_number")
if port_num and int(port_num) == int(port_number):
port_type = port.get("type", "")
if "udp" in port_type.lower():
ifaces_info = {
"node_id": node.id,
"type": f"{port_type}",
"lport": port["lport"],
"rhost": port["rhost"],
"rport": port["rport"]
}
else:
ifaces_info = {
"node_id": node.id,
"type": f"{port_type}",
"interface": port["interface"],
}
if not ifaces_info:
raise ControllerError("Link not connected to Cloud/NAT")
return ifaces_info
+10 -1
View File
@@ -330,6 +330,9 @@ async def export_project(
Required privilege: Project.Audit
"""
if project.is_running():
raise ControllerError("Project must be stopped in order to export it")
compression_query = compression.lower()
if compression_query == "zip":
compression = zipfile.ZIP_DEFLATED
@@ -380,7 +383,13 @@ async def export_project(
except (ValueError, OSError, RuntimeError) as e:
raise ConnectionError(f"Cannot export project: {e}")
headers = {"CONTENT-DISPOSITION": f'attachment; filename="{project.name}.gns3project"'}
fallback = project.name.encode("ascii", "ignore").decode() or "project"
encoded = urllib.parse.quote(project.name, safe="")
headers = {
"Content-Disposition": (
f'attachment; filename="{fallback}.gns3project"; filename*=UTF-8\'\'{encoded}.gns3project'
)
}
return StreamingResponse(streamer(), media_type="application/gns3project", headers=headers)
+23 -2
View File
@@ -18,6 +18,7 @@
API routes for templates.
"""
import os
import hashlib
import json
@@ -34,6 +35,8 @@ from gns3server.db.repositories.templates import TemplatesRepository
from gns3server.services.templates import TemplatesService
from gns3server.db.repositories.rbac import RbacRepository
from gns3server.db.repositories.images import ImagesRepository
from gns3server.controller.controller_error import ControllerError
from gns3server.utils.images import get_builtin_disks
from .dependencies.authentication import get_current_active_user
from .dependencies.rbac import has_privilege
@@ -132,10 +135,28 @@ async def delete_template(
Required privilege: Template.Allocate
"""
images = await templates_repo.get_template_images(template_id)
await TemplatesService(templates_repo).delete_template(template_id)
await rbac_repo.delete_all_ace_starting_with_path(f"/templates/{template_id}")
if prune_images:
await images_repo.prune_images()
if prune_images and images:
skip_images = get_builtin_disks()
for image in images:
if image.filename in skip_images:
continue
templates = await images_repo.get_image_templates(image.image_id)
if templates:
template_names = ", ".join([template.name for template in templates])
raise ControllerError(f"Image '{image.path}' is used by one or more templates: {template_names}")
try:
os.remove(image.path)
except OSError:
log.warning(f"Could not delete image file {image.path}")
print(f"Deleting image '{image.path}'")
success = await images_repo.delete_image(image.path)
if not success:
raise ControllerError(f"Image '{image.path}' could not removed from the database")
@router.get(
+30
View File
@@ -25,6 +25,14 @@
"options": "-cpu host -nographic"
},
"images": [
{
"filename": "AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2",
"version": "9.4",
"md5sum": "7c5040c044a989c524d40824cebb4a4d",
"filesize": 591724544,
"download_url": "https://vault.almalinux.org/9.4/cloud/x86_64/images/",
"direct_download_url": "https://vault.almalinux.org/9.4/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2"
},
{
"filename": "AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2",
"version": "9.2",
@@ -33,6 +41,14 @@
"download_url": "https://vault.almalinux.org/9.2/cloud/x86_64/images/",
"direct_download_url": "https://vault.almalinux.org/9.2/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2"
},
{
"filename": "AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2",
"version": "8.9",
"md5sum": "1afc48c798960f0c6ebb65428c0ea973",
"filesize": 697434112,
"download_url": "https://vault.almalinux.org/8.9/cloud/x86_64/images/",
"direct_download_url": "https://vault.almalinux.org/8.9/cloud/x86_64/images/AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2"
},
{
"filename": "AlmaLinux-8-GenericCloud-8.8-20230524.x86_64.qcow2",
"version": "8.8",
@@ -59,6 +75,13 @@
}
],
"versions": [
{
"name": "9.4",
"images": {
"hda_disk_image": "AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2",
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "9.2",
"images": {
@@ -66,6 +89,13 @@
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "8.9",
"images": {
"hda_disk_image": "AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2",
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "8.8",
"images": {
+56
View File
@@ -0,0 +1,56 @@
{
"appliance_id": "edbaa01e-2032-4ee2-bb9f-dd5c4d84c270",
"name": "Alpine Cloud Guest",
"category": "guest",
"description": "Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.",
"vendor_name": "Alpine Linux Development Team",
"vendor_url": "http://alpinelinux.org",
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Alpine Linux.png",
"documentation_url": "http://wiki.alpinelinux.org",
"product_name": "Alpine Linux",
"product_url": "https://www.alpinelinux.org/cloud/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "\nUsername: alpine\nPassword: alpine",
"port_name_format": "Ethernet{0}",
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 1,
"ram": 1024,
"hda_disk_interface": "virtio",
"arch": "x86_64",
"console_type": "telnet",
"boot_priority": "c",
"kvm": "require",
"options": "-nographic"
},
"images": [
{
"filename": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
"version": "3.21.2",
"md5sum": "b40825dff2867e0ffaffbc4c87674462",
"filesize": 189726720,
"download_url": "https://www.alpinelinux.org/cloud/",
"direct_download_url": "https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/cloud/generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2"
},
{
"filename": "alpine-cloud-init-data.iso",
"version": "1.0",
"md5sum": "b1b4b16cc3bf0250c0fa377c19c97683",
"filesize": 374784,
"download_url": "https://github.com/GNS3/gns3-registry/tree/master/cloud-init/alpine-cloud",
"direct_download_url": "https://github.com/GNS3/gns3-registry/raw/master/cloud-init/alpine-cloud/alpine-cloud-init-data.iso"
}
],
"versions": [
{
"name": "3.21.2",
"images": {
"hda_disk_image": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
"cdrom_image": "alpine-cloud-init-data.iso"
}
}
]
}
+20 -514
View File
@@ -2,14 +2,14 @@
"appliance_id": "c90f3ff3-4ed2-4437-9afb-21232fa92015",
"name": "Arista vEOS",
"category": "multilayer_switch",
"description": "Arista EOS\u00ae is the core of Arista cloud networking solutions for next-generation data centers and cloud networks. Cloud architectures built with Arista EOS scale to tens of thousands of compute and storage nodes with management and provisioning capabilities that work at scale. Through its programmability, EOS enables a set of software applications that deliver workflow automation, high availability, unprecedented network visibility and analytics and rapid integration with a wide range of third-party applications for virtualization, management, automation and orchestration services.\n\nArista Extensible Operating System (EOS) is a fully programmable and highly modular, Linux-based network operation system, using familiar industry standard CLI and runs a single binary software image across the Arista switching family. Architected for resiliency and programmability, EOS has a unique multi-process state sharing architecture that separates state information and packet forwarding from protocol processing and application logic.",
"description": "Arista EOS is the core of Arista cloud networking solutions for next-generation data centers and cloud networks. Cloud architectures built with Arista EOS scale to tens of thousands of compute and storage nodes with management and provisioning capabilities that work at scale. Through its programmability, EOS enables a set of software applications that deliver workflow automation, high availability, unprecedented network visibility and analytics and rapid integration with a wide range of third-party applications for virtualization, management, automation and orchestration services.\n\nArista Extensible Operating System (EOS) is a fully programmable and highly modular, Linux-based network operation system, using familiar industry standard CLI and runs a single binary software image across the Arista switching family. Architected for resiliency and programmability, EOS has a unique multi-process state sharing architecture that separates state information and packet forwarding from protocol processing and application logic.",
"vendor_name": "Arista",
"vendor_url": "http://www.arista.com/",
"documentation_url": "https://www.arista.com/assets/data/docs/Manuals/EOS-4.17.2F-Manual.pdf",
"product_name": "vEOS",
"product_url": "https://eos.arista.com/",
"registry_version": 4,
"status": "experimental",
"status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "The login is admin, with no password by default",
@@ -29,87 +29,24 @@
},
"images": [
{
"filename": "vEOS64-lab-4.32.0F.vmdk",
"version": "4.32.0F",
"md5sum": "851771260bb18ad3e90fa6956f0c6161",
"filesize": 591724544,
"filename": "vEOS64-lab-4.33.2F.qcow2",
"version": "4.33.2F",
"md5sum": "fbe629a8342cd0b3b19566b9d7ef4f4f",
"filesize": 610992128,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS64-lab-4.31.3M.vmdk",
"version": "4.31.3M",
"md5sum": "7df107da137f4a4e752014d4f0e94cd3",
"filesize": 577961984,
"filename": "vEOS64-lab-4.32.4.1M.qcow2",
"version": "4.32.4.1M",
"md5sum": "cd369b5ccfd87ccd83a34538681ba35f",
"filesize": 605159424,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS64-lab-4.30.6M.vmdk",
"version": "4.30.6M",
"md5sum": "19721aace820b9ebf6d7ae6524803cf5",
"filesize": 553123840,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS64-lab-4.29.8M.vmdk",
"version": "4.29.8M",
"md5sum": "131888f74cd63a93894521d40eb4d0b6",
"filesize": 548405248,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS64-lab-4.28.11M.vmdk",
"version": "4.28.11M",
"md5sum": "6cac0e7b04a74ee0dc358327a00accfd",
"filesize": 513343488,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS64-lab-4.27.12M.vmdk",
"version": "4.27.12M",
"md5sum": "34c4f785c7fc054cda8754dd13c0d7c7",
"filesize": 496697344,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.32.0F.vmdk",
"version": "4.32.0F",
"md5sum": "584b901a1249717504050e48f74fb8dd",
"filesize": 591396864,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.31.3M.vmdk",
"version": "4.31.3M",
"md5sum": "a2e130697cdf8547006eebebde6eefca",
"filesize": 590086144,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.30.6M.vmdk",
"version": "4.30.6M",
"md5sum": "a4467648bcfa7b19640af8a4ad3153c6",
"filesize": 565968896,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.29.8M.vmdk",
"version": "4.29.8M",
"md5sum": "1952f6114a4376212c525db9ec8efd5f",
"filesize": 558039040,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.28.11M.vmdk",
"version": "4.28.11M",
"md5sum": "5502df24dfc231c45afb33d6018c16d0",
"filesize": 521338880,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.27.12M.vmdk",
"version": "4.27.12M",
"md5sum": "e08a97e7c1977993f947fedeb4c6ddd5",
"filesize": 504299520,
"filename": "vEOS64-lab-4.31.6M.qcow2",
"version": "4.31.6M",
"md5sum": "02fbd929de9416e1096cd2454507d6ce",
"filesize": 590479360,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
@@ -118,459 +55,28 @@
"md5sum": "8d7e754efebca1930a93a2587ff7606c",
"filesize": 6291456,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.26.2F.vmdk",
"version": "4.26.2F",
"md5sum": "de8ce9750fddb63bd3f71bccfcd7651e",
"filesize": 475332608,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.25.3M.vmdk",
"version": "4.25.3M",
"md5sum": "2f196969036b4d283e86f15118d59c26",
"filesize": 451543040,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.24.3M.vmdk",
"version": "4.24.3M",
"md5sum": "0a28e44c7ce4a8965f24a4a463a89b7d",
"filesize": 455213056,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.24.2.1F.vmdk",
"version": "4.24.2.1F",
"md5sum": "6bab8b59ce5230e243e56f4127448fc8",
"filesize": 455213056,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.23.4.2M.vmdk",
"version": "4.23.4.2M",
"md5sum": "d21cbef4e39f1e783b13a926cb54a242",
"filesize": 454295552,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.23.0.1F.vmdk",
"version": "4.23.0.1F",
"md5sum": "08d52154aa11a834aef9f42bbf29f977",
"filesize": 439484416,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.22.2.1F.vmdk",
"version": "4.22.2.1F",
"md5sum": "2a425bf8efe569a2bdf0e328f240cd16",
"filesize": 426377216,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.22.0F.vmdk",
"version": "4.22.0F",
"md5sum": "cfcc75c2b8176cfd819afcfd6799b74c",
"filesize": 414121984,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.21.1.1F.vmdk",
"version": "4.21.1F",
"md5sum": "02bfb7e53781fd44ff02357f201586d9",
"filesize": 358809600,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.20.10M-combined.vmdk",
"version": "4.20.10M-combined",
"md5sum": "d1f2d650f93dbf24e04fdd2c9d62bd62",
"filesize": 334626816,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.20.1F.vmdk",
"version": "4.20.1F",
"md5sum": "aadb6f3dbff28317f68cb4c4502d0db8",
"filesize": 662044672,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.19.10M-combined.vmdk",
"version": "4.19.10M-combined",
"md5sum": "103daa45c33be4584cbe6adc60de46a3",
"filesize": 324141056,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.19.10M.vmdk",
"version": "4.19.10M",
"md5sum": "665ed14389411ae5f16ba0a2ff84240a",
"filesize": 637337600,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.18.10M-combined.vmdk",
"version": "4.18.10M-combined",
"md5sum": "e33e0ef5b8cecc84c5bb57569b36b9c6",
"filesize": 317652992,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.18.10M.vmdk",
"version": "4.18.10M",
"md5sum": "1d87e9ace37fe3706dbf3e49c8d4d231",
"filesize": 624427008,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.18.5M.vmdk",
"version": "4.18.5M",
"md5sum": "b1ee6268dbaf2b2276fd7a5286c7ce2b",
"filesize": 623116288,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.18.1F.vmdk",
"version": "4.18.1F",
"md5sum": "9648c63185f3b793b47528a858ca4364",
"filesize": 620625920,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.17.8M.vmdk",
"version": "4.17.8M",
"md5sum": "afc79a06f930ea2cc0ae3e03cbfd3f23",
"filesize": 608829440,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.17.2F.vmdk",
"version": "4.17.2F",
"md5sum": "3b4845edfa77cf9aaeb9c0a005d3e277",
"filesize": 609615872,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.16.13M.vmdk",
"version": "4.16.13M",
"md5sum": "4d0facf90140fc3aab031f0f8f88a32f",
"filesize": 521404416,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.16.6M.vmdk",
"version": "4.16.6M",
"md5sum": "b3f7b7cee17f2e66bb38b453a4939fef",
"filesize": 519962624,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.15.10M.vmdk",
"version": "4.15.10M",
"md5sum": "98e08281a9c48ddf6f3c5d62a124a20f",
"filesize": 517079040,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.15.5M.vmdk",
"version": "4.15.5M",
"md5sum": "cd74bb69c7ee905ac3d33c4d109f3ab7",
"filesize": 516030464,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.14.14M.vmdk",
"version": "4.14.14M",
"md5sum": "d81ba0522f4d7838d96f7985e41cdc47",
"filesize": 422641664,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.13.16M.vmdk",
"version": "4.13.16M",
"md5sum": "5763b2c043830c341c8b1009f4ea9a49",
"filesize": 404684800,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "vEOS-lab-4.13.8M.vmdk",
"version": "4.13.8M",
"md5sum": "a47145b9e6e7a24171c0850f8755535e",
"filesize": 409010176,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "Aboot-veos-serial-8.0.0.iso",
"version": "8.0.0",
"md5sum": "488ad1c435d18c69bb8d69c7806457c9",
"filesize": 5242880,
"download_url": "https://www.arista.com/en/support/software-download"
}
],
"versions": [
{
"name": "4.32.0F",
"name": "4.33.2F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.32.0F.vmdk"
"hdb_disk_image": "vEOS64-lab-4.33.2F.qcow2"
}
},
{
"name": "4.31.3M",
"name": "4.32.4.1M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.31.3M.vmdk"
"hdb_disk_image": "vEOS64-lab-4.32.4.1M.qcow2"
}
},
{
"name": "4.30.6M",
"name": "4.31.6M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.30.6M.vmdk"
}
},
{
"name": "4.29.8M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.29.8M.vmdk"
}
},
{
"name": "4.28.11M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.28.11M.vmdk"
}
},
{
"name": "4.27.12M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.27.12M.vmdk"
}
},
{
"name": "4.32.0F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS-lab-4.32.0F.vmdk"
}
},
{
"name": "4.31.3M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS-lab-4.31.3M.vmdk"
}
},
{
"name": "4.30.6M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS-lab-4.30.6M.vmdk"
}
},
{
"name": "4.29.8M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS-lab-4.29.8M.vmdk"
}
},
{
"name": "4.28.11M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS-lab-4.28.11M.vmdk"
}
},
{
"name": "4.27.12M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS-lab-4.27.12M.vmdk"
}
},
{
"name": "4.26.2F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.26.2F.vmdk"
}
},
{
"name": "4.25.3M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.25.3M.vmdk"
}
},
{
"name": "4.24.3M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.24.3M.vmdk"
}
},
{
"name": "4.24.2.1F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.24.2.1F.vmdk"
}
},
{
"name": "4.23.4.2M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.23.4.2M.vmdk"
}
},
{
"name": "4.23.0.1F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.23.0.1F.vmdk"
}
},
{
"name": "4.22.2.1F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.22.2.1F.vmdk"
}
},
{
"name": "4.22.0F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.22.0F.vmdk"
}
},
{
"name": "4.21.1F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.21.1.1F.vmdk"
}
},
{
"name": "4.20.10M-combined",
"images": {
"hda_disk_image": "vEOS-lab-4.20.10M-combined.vmdk"
}
},
{
"name": "4.20.1F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.20.1F.vmdk"
}
},
{
"name": "4.19.10M-combined",
"images": {
"hda_disk_image": "vEOS-lab-4.19.10M-combined.vmdk"
}
},
{
"name": "4.19.10M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.19.10M.vmdk"
}
},
{
"name": "4.18.10M-combined",
"images": {
"hda_disk_image": "vEOS-lab-4.18.10M-combined.vmdk"
}
},
{
"name": "4.18.10M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.18.10M.vmdk"
}
},
{
"name": "4.18.5M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.18.5M.vmdk"
}
},
{
"name": "4.18.1F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.18.1F.vmdk"
}
},
{
"name": "4.17.8M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.17.8M.vmdk"
}
},
{
"name": "4.17.2F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.17.2F.vmdk"
}
},
{
"name": "4.16.13M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.16.13M.vmdk"
}
},
{
"name": "4.16.6M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.16.6M.vmdk"
}
},
{
"name": "4.15.10M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.15.10M.vmdk"
}
},
{
"name": "4.15.5M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.15.5M.vmdk"
}
},
{
"name": "4.14.14M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.14.14M.vmdk"
}
},
{
"name": "4.13.16M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.13.16M.vmdk"
}
},
{
"name": "4.13.8M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
"hdb_disk_image": "vEOS-lab-4.13.8M.vmdk"
"hdb_disk_image": "vEOS64-lab-4.31.6M.qcow2"
}
}
]
@@ -32,6 +32,27 @@
"process_priority": "normal"
},
"images": [
{
"filename": "arubaoscx-disk-image-genericx86-p4-20241115202521.vmdk",
"version": "10.15.0005",
"md5sum": "69b3675391c04c1a6e0fd0bf8d8bc2d9",
"filesize": 420049408,
"download_url": "https://networkingsupport.hpe.com"
},
{
"filename": "arubaoscx-disk-image-genericx86-p4-20240731173624.vmdk",
"version": "10.14.1000",
"md5sum": "01d6932fbc9c46180a4f41aee9e98301",
"filesize": 412140544,
"download_url": "https://networkingsupport.hpe.com"
},
{
"filename": "arubaoscx-disk-image-genericx86-p4-20240528190307.vmdk",
"version": "10.14.0001",
"md5sum": "83902dbaa74c37cdda3f066f79431933",
"filesize": 401023488,
"download_url": "https://networkingsupport.hpe.com"
},
{
"filename": "arubaoscx-disk-image-genericx86-p4-20240129204649.vmdk",
"version": "10.13.1000",
@@ -139,6 +160,24 @@
}
],
"versions": [
{
"name": "10.15.0005",
"images": {
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20241115202521.vmdk"
}
},
{
"name": "10.14.1000",
"images": {
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20240731173624.vmdk"
}
},
{
"name": "10.14.0001",
"images": {
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20240528190307.vmdk"
}
},
{
"name": "10.13.1000",
"images": {
@@ -0,0 +1,33 @@
{
"appliance_id": "4aa78f74-c769-43e0-9ef1-5dd2cf1909c6",
"name": "Asterfusion AsterNOS-VPP",
"category": "router",
"description": "AsterNOS-VPP leverages SONiC’s robust routing features and management capability with VPP’s high-performance data forwarding. It supports L3 routing, NAT, PPPoE, and VPN services. Minimum requirements: 4 vCPUs and 4GB RAM.",
"vendor_name": "Asterfusion",
"vendor_url": "https://cloudswit.ch/product/sonic-enterprise-distribution/#vAsterNOS",
"documentation_url": "https://docs.asternos.com/routing",
"product_name": "AsterNOS-VPP",
"registry_version": 6,
"status": "stable",
"maintainer": "Asterfusion Product Team",
"maintainer_email": "bd@cloudswit.ch",
"images": [
{
"filename": "AsterNOS-VPP_V6.1-R0101P02_x86.img.gz",
"version": "V6.1",
"md5sum": "55834c3e8849ab226144d79ef76acf81",
"filesize": 1318201015,
"download_url": "https://asternos.dev/api/file/b2c9fd83-a9d3-46f3-9676-6b49dd481d6c",
"comments": "Registration is required to download the image."
}
],
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 4,
"ram": 4096,
"cpus": 4,
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require"
}
}
@@ -0,0 +1,50 @@
{
"appliance_id": "9e934470-d898-4289-a5ed-50af094e629e",
"name": "Asterfusion vAsterNOS campus",
"category": "multilayer_switch",
"description": "AsterNOS is the core technology of Asterfusion’s one-stop SONiC turnkey solution designed for cloud, enterprise, and AI-driven scenarios. AsterNOS v5.2 Campus is specifically designed for traditional campus networks, offering comprehensive L2/L3 capabilities suitable for various campus scenarios such as schools, office buildings, and hospitals. This version supports a fully cloud-integrated Layer 3 network architecture, providing rich routing and switching functionalities to ensure high-performance operation and ease of maintenance. It can also be deployed in the GNS3 simulation environment to experience a complete All-Layer 3 Cloud-Campus network. This version is ideal for enterprises and campus networks requiring high-performance multi-service transport, supporting cross-domain connectivity and providing nanosecond-level time synchronization. It is well-suited for applications with stringent time accuracy requirements, such as financial trading, industrial automation, and smart manufacturing. NOTICE: This appliance file is a virtualized version of AsterNOS and is intended to be used only to experience the basic functionality and industry standard CLI (Klish), not for official software testing. For more information about AsterNOS commercial version, please feel free to contact us via Email: bd@cloudswit.ch",
"vendor_name": "Asterfusion",
"vendor_url": "https://cloudswit.ch/",
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/asterfusion.png",
"documentation_url": "https://help.cloudswit.ch/portal/en/kb/articles/vasternos",
"product_name": "vAsterNOS",
"product_url": "https://cloudswit.ch/",
"registry_version": 4,
"status": "experimental",
"maintainer": "Asterfusion",
"maintainer_email": "bd@cloudswit.ch",
"usage": "The login is admin and the password is asteros",
"symbol": "asterfusion-vAsterNOS.svg",
"first_port_name": "eth0",
"port_name_format": "Ethernet{0}",
"qemu": {
"adapter_type": "e1000",
"adapters": 10,
"ram": 4096,
"cpus": 4,
"hda_disk_interface": "virtio",
"arch": "x86_64",
"console_type": "telnet",
"boot_priority": "d",
"kvm": "require"
},
"images": [
{
"filename": "vAsterNOS-V5.2R012P01.img",
"version": "5.2-12-1",
"md5sum": "d18c0cfd786607ccc6dc1069a8f40465",
"filesize": 2823290880,
"download_url": "https://drive.cloudswitch.io/external/d29f6d0a6c8322fea42b3c08e95113d026b8ec6aafbe29193c338333077f3da7"
}
],
"versions": [
{
"name": "5.2-12-1",
"images": {
"hda_disk_image": "vAsterNOS-V5.2R012P01.img"
}
}
]
}
@@ -6,14 +6,14 @@
"vendor_name": "Asterfusion",
"vendor_url": "https://cloudswit.ch/",
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/asterfusion.png",
"documentation_url": "https://help.cloudswit.ch/portal/en/kb/articles/vasternos",
"documentation_url": "https://asternos.com/community/space/vasternos/post/vasternos-for-data-center-network",
"product_name": "vAsterNOS",
"product_url": "https://cloudswit.ch/product/sonic-enterprise-distribution",
"registry_version": 4,
"status": "experimental",
"maintainer": "Asterfusion",
"maintainer_email": "bd@cloudswit.ch",
"usage": "The login is admin, passwd asteros",
"usage": "The login is admin and the password is asteros",
"symbol": "asterfusion-vAsterNOS.svg",
"first_port_name": "eth0",
"port_name_format": "Ethernet{0}",
@@ -30,18 +30,18 @@
},
"images": [
{
"filename": "vAsterNOS-V3.1.img",
"filename": "AsterNOS_V3.1_R0408P01-VS.img.gz",
"version": "V3.1",
"md5sum": "c323c9c3f60e1a93eca2acdc5034b85c",
"filesize": 2724659200,
"download_url": "https://drive.cloudswitch.io/external/8ae2e3932ad8bb2ec30dd25be415d288ff3e4a949c557c6bd48ac6e6265bcfc1"
"md5sum": "5c182306af67be2c79a5642551412e48",
"filesize": 1425945924,
"download_url": "http://pub.asternos.com/AsterNOS_V3.1_R0408P01-VS.img.gz"
}
],
"versions": [
{
"name": "V3.1",
"images": {
"hda_disk_image": "vAsterNOS-V3.1.img"
"hda_disk_image": "AsterNOS_V3.1_R0408P01-VS.img.gz"
}
}
]
+24 -54
View File
@@ -27,44 +27,28 @@
},
"images": [
{
"filename": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2",
"version": "Stream-9 (20230704.1)",
"md5sum": "e04511e019325a97837edd9eafe02b48",
"filesize": 1087868416,
"filename": "CentOS-Stream-GenericCloud-x86_64-10-20250331.0.x86_64.qcow2",
"version": "Stream-10 (20250331.0)",
"md5sum": "776033371ca346001dd6390f0cbaf0d0",
"filesize": 952041472,
"download_url": "https://cloud.centos.org/centos/10-stream/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-20250331.0.x86_64.qcow2"
},
{
"filename": "CentOS-Stream-GenericCloud-9-20250331.0.x86_64.qcow2",
"version": "Stream-9 (20250331.0)",
"md5sum": "4aaeddc6ca497065522c75a7471f9bfd",
"filesize": 1250625536,
"download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2"
"direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20250331.0.x86_64.qcow2"
},
{
"filename": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2",
"version": "Stream-8 (20230710.0)",
"md5sum": "83e02ce98c29753c86fb7be7d802aa75",
"filesize": 1676164096,
"filename": "CentOS-Stream-GenericCloud-8-20240603.0.x86_64.qcow2",
"version": "Stream-8 (20240603.0)",
"md5sum": "77f3c9650785b8e977209796e09ee33e",
"filesize": 2003698688,
"download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2"
},
{
"filename": "CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2",
"version": "8.4 (2105)",
"md5sum": "032eed270415526546eac07628905a62",
"filesize": 1309652992,
"download_url": "https://cloud.centos.org/centos/8/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2"
},
{
"filename": "CentOS-7-x86_64-GenericCloud-2111.qcow2",
"version": "7 (2111)",
"md5sum": "730b8662695831670721c8245be61dac",
"filesize": 897384448,
"download_url": "https://cloud.centos.org/centos/7/images",
"direct_download_url": "https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2111.qcow2"
},
{
"filename": "CentOS-7-x86_64-GenericCloud-1809.qcow2",
"version": "7 (1809)",
"md5sum": "da79108d1324b27bd1759362b82fbe40",
"filesize": 914948096,
"download_url": "https://cloud.centos.org/centos/7/images",
"direct_download_url": "https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1809.qcow2"
"direct_download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20240603.0.x86_64.qcow2"
},
{
"filename": "centos-cloud-init-data.iso",
@@ -77,37 +61,23 @@
],
"versions": [
{
"name": "Stream-9 (20230704.1)",
"name": "Stream-10 (20250331.0)",
"images": {
"hda_disk_image": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2",
"hda_disk_image": "CentOS-Stream-GenericCloud-x86_64-10-20250331.0.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},
{
"name": "Stream-8 (20230710.0)",
"name": "Stream-9 (20250331.0)",
"images": {
"hda_disk_image": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2",
"hda_disk_image": "CentOS-Stream-GenericCloud-9-20250331.0.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},
{
"name": "8.4 (2105)",
"name": "Stream-8 (20240603.0)",
"images": {
"hda_disk_image": "CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},
{
"name": "7 (2111)",
"images": {
"hda_disk_image": "CentOS-7-x86_64-GenericCloud-2111.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},
{
"name": "7 (1809)",
"images": {
"hda_disk_image": "CentOS-7-x86_64-GenericCloud-1809.qcow2",
"hda_disk_image": "CentOS-Stream-GenericCloud-8-20240603.0.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
}
+13
View File
@@ -50,6 +50,12 @@
"version": "124-25G",
"md5sum": "9c7cc9b3f3b3571411a7f62faaa2c036",
"filesize": 71528984
},
{
"filename": "c7200-itpk9-mz.124-15.SW.image",
"version": "124-15.SW",
"md5sum": "3334a0facdbd26164e83d3c201fff5b5",
"filesize": 46423952
}
],
"versions": [
@@ -87,6 +93,13 @@
"images": {
"image": "c7200-a3jk9s-mz.124-25g.image"
}
},
{
"name": "124-15.SW",
"idlepc": "0x60b2bc68",
"images": {
"image": "c7200-itpk9-mz.124-15.SW.image"
}
}
]
}
+2 -2
View File
@@ -5,9 +5,9 @@
"description": "The Adaptive Security Virtual Appliance is a virtualized network security solution based on the market-leading Cisco ASA 5500-X Series firewalls. It supports both traditional and next-generation software-defined network (SDN) and Cisco Application Centric Infrastructure (ACI) environments to provide policy enforcement and threat inspection across heterogeneous multisite environments.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "http://www.cisco.com/c/en/us/support/security/virtual-adaptive-security-appliance-firewall/products-installation-guides-list.html",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/asav/",
"product_name": "ASAv",
"product_url": "http://www.cisco.com/c/en/us/products/security/virtual-adaptive-security-appliance-firewall/index.html",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
+15 -2
View File
@@ -5,9 +5,9 @@
"description": "The Cisco Catalyst 8000V Edge Software is a virtual, form-factor router deployed on a virtual machine (VM) running on an x86 server hardware.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "https://www.cisco.com/c/en/us/td/docs/routers/C8000V/Configuration/c8000v-installation-configuration-guide.html",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/cat-8000v/",
"product_name": "c8000v",
"product_url": "https://www.cisco.com/c/en/us/support/routers/catalyst-8000v-edge-software/series.html",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
@@ -24,6 +24,13 @@
"kvm": "require"
},
"images": [
{
"filename": "c8000v-universalk9_8G_serial.17.15.01a.qcow2",
"version": "17.15.01a 8G",
"md5sum": "41efa0aedd67f1f57cde1263c79d9ff6",
"filesize": 1846280192,
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/IOSXE-17.15.1a"
},
{
"filename": "c8000v-universalk9_8G_serial.17.09.04a.qcow2",
"version": "17.09.04a 8G",
@@ -68,6 +75,12 @@
}
],
"versions": [
{
"name": "17.15.01a 8G",
"images": {
"hda_disk_image": "c8000v-universalk9_8G_serial.17.15.01a.qcow2"
}
},
{
"name": "17.09.04a 8G",
"images": {
+2 -2
View File
@@ -5,9 +5,9 @@
"description": "Cisco IOS-XE 9000v. This appliance requires 16GB of memory to run! Recommend 2 or more vCPUs for faster boot performance",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/2-5/#!cml-release-notes",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/cat-9000v/",
"product_name": "Cisco CAT IOS-XE 9000v",
"product_url": "http://virl.cisco.com/",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "experimental",
"maintainer": "GNS3 Team",
+3 -3
View File
@@ -5,9 +5,9 @@
"description": "The Cisco Cloud Services Router 1000V (CSR 1000V) is a router and network services platform in virtual form factor that is intended for deployment in cloud and virtual data centers. It is optimized to serve as a single-tenant or multitenant WAN gateway. Using proven, industry-leading Cisco IOS\u00ae XE Software networking and security features, the CSR 1000V enables enterprises to transparently extend their WANs into external provider-hosted clouds and cloud providers to offer their tenants enterprise-class networking services.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "http://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/products-installation-and-configuration-guides-list.html",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/csr-1000v/",
"product_name": "CSR1000v",
"product_url": "http://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/tsd-products-support-series-home.html",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
@@ -169,7 +169,7 @@
"version": "16.4.1",
"md5sum": "3428e0dcf5132a1b11ab7696d8c61b2e",
"filesize": 1261961216,
"download_url": "https://virl.mediuscorp.com/my-account/"
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
},
{
"filename": "csr1000v-universalk9.16.6.1.qcow2",
+22 -7
View File
@@ -5,8 +5,9 @@
"description": "Cisco Virtual IOS allows user to run IOS on a standard computer.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol/",
"product_name": "IOSv",
"product_url": "http://virl.cisco.com/",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
@@ -25,12 +26,11 @@
},
"images": [
{
"filename": "IOSv_startup_config.img",
"version": "1",
"md5sum": "bc605651c4688276f81fd59dcf5cc786",
"filesize": 1048576,
"download_url": "https://sourceforge.net/projects/gns-3/files",
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
"filename": "vios-adventerprisek9-m.spa.159-3.m9.qcow2",
"version": "15.9(3)M9",
"md5sum": "01b707a2e33185d6d33e0255ced45d23",
"filesize": 57323008,
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
},
{
"filename": "vios-adventerprisek9-m.spa.159-3.m8.qcow2",
@@ -101,9 +101,24 @@
"md5sum": "79f613ac3b179d5a64520730925130b2",
"filesize": 127926272,
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
},
{
"filename": "IOSv_startup_config.img",
"version": "1",
"md5sum": "bc605651c4688276f81fd59dcf5cc786",
"filesize": 1048576,
"download_url": "https://sourceforge.net/projects/gns-3/files",
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
}
],
"versions": [
{
"name": "15.9(3)M9",
"images": {
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m9.qcow2",
"hdb_disk_image": "IOSv_startup_config.img"
}
},
{
"name": "15.9(3)M8",
"images": {
+2 -1
View File
@@ -5,8 +5,9 @@
"description": "Cisco Virtual IOS L2 allows user to run a IOS switching image on a standard computer.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iosvl2/",
"product_name": "IOSvL2",
"product_url": "http://virl.cisco.com/",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
+2 -2
View File
@@ -5,9 +5,9 @@
"description": "IOS XRv supports the control plane features introduced in Cisco IOS XR.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/ios-xrv/",
"product_name": "IOS XRv",
"product_url": "http://virl.cisco.com/",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
+16 -133
View File
@@ -5,9 +5,9 @@
"description": "IOS XRv 9000 (aka Sunstone) is the 1st VM released running the 64-bit IOS XR operating system as used on the NCS-6xxx platform. This appliance requires 4 vCPUs and 16GB of memory to run!",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/ios-xrv-9000/",
"product_name": "IOS XRv 9000",
"product_url": "http://virl.cisco.com/",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "experimental",
"maintainer": "GNS3 Team",
@@ -26,92 +26,35 @@
"options": "-smp 4 -cpu host"
},
"images": [
{
"filename": "xrv9k-fullk9-x-24.3.1.qcow2",
"version": "24.3.1",
"md5sum": "bd047c457e29952f265583f299bab845",
"filesize": 1704658432,
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
},
{
"filename": "xrv9k-fullk9-x-7.7.1.qcow2",
"version": "7.7.1",
"md5sum": "682fff40d2ff373d8da3342906553b54",
"filesize": 1643905024,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.1.1"
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
},
{
"filename": "xrv9k-fullk9-x-7.1.1.qcow2",
"version": "7.1.1",
"md5sum": "dcf241e3f8df0151fec2c7bfac9d96ac",
"filesize": 1443758080,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.1.1"
},
{
"filename": "xrv9k-fullk9-x-7.0.1.qcow2",
"version": "7.0.1",
"md5sum": "ca2817767fa546e303c3c536e211d33e",
"filesize": 1446445056,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.0.1"
},
{
"filename": "xrv9k-fullk9-x-6.6.2.qcow2",
"version": "6.6.2",
"md5sum": "fd630be3c449e625073286a3a66021ae",
"filesize": 1452998656,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.6.2"
},
{
"filename": "xrv9k-fullk9-x-6.5.3.qcow2",
"version": "6.5.3",
"md5sum": "71f018e3ea895b663129090fb4f0ff40",
"filesize": 1205075968,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.3"
},
{
"filename": "xrv9k-fullk9-x-6.5.2.qcow2",
"version": "6.5.2",
"md5sum": "506d9e23dda7365c99dd82b613859697",
"filesize": 1205010432,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1"
},
{
"filename": "xrv9k-fullk9-x-6.5.1.qcow2",
"version": "6.5.1",
"md5sum": "730868e7cd46de9aa2e950899c7f9498",
"filesize": 1208811520,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1"
},
{
"filename": "xrv9k-fullk9-x-6.4.2.qcow2",
"version": "6.4.2",
"md5sum": "6958763192c7bb59a1b8049d377de1b4",
"filesize": 1311703040,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.2"
},
{
"filename": "xrv9k-fullk9-x-6.4.1.qcow2",
"version": "6.4.1",
"md5sum": "9c56b684e307706005a503e289cb9317",
"filesize": 1304887296,
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.1"
},
{
"filename": "xrv9k-fullk9-x-6.2.25.qcow2",
"version": "6.2.25",
"md5sum": "3f54e62b6f7cedfb2607233e5e465766",
"filesize": 1190723584,
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
},
{
"filename": "xrv9k-fullk9-x.qcow2-6.0.1",
"version": "6.0.1",
"md5sum": "e20d046807075046c35b6ce7d6766a7f",
"filesize": 2109210624,
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
},
{
"filename": "xrv9k-fullk9-x.qcow2-6.0.0",
"version": "6.0.0",
"md5sum": "64c538c34252aaeb4ed1ddb93d6803fd",
"filesize": 2572943360,
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
}
],
"versions": [
{
"name": "24.3.1",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-24.3.1.qcow2"
}
},
{
"name": "7.7.1",
"images": {
@@ -123,66 +66,6 @@
"images": {
"hda_disk_image": "xrv9k-fullk9-x-7.1.1.qcow2"
}
},
{
"name": "7.0.1",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-7.0.1.qcow2"
}
},
{
"name": "6.6.2",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-6.6.2.qcow2"
}
},
{
"name": "6.5.3",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-6.5.3.qcow2"
}
},
{
"name": "6.5.2",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-6.5.2.qcow2"
}
},
{
"name": "6.5.1",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-6.5.1.qcow2"
}
},
{
"name": "6.4.2",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-6.4.2.qcow2"
}
},
{
"name": "6.4.1",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-6.4.1.qcow2"
}
},
{
"name": "6.2.25",
"images": {
"hda_disk_image": "xrv9k-fullk9-x-6.2.25.qcow2"
}
},
{
"name": "6.0.1",
"images": {
"hda_disk_image": "xrv9k-fullk9-x.qcow2-6.0.1"
}
},
{
"name": "6.0.0",
"images": {
"hda_disk_image": "xrv9k-fullk9-x.qcow2-6.0.0"
}
}
]
}
+2
View File
@@ -5,7 +5,9 @@
"description": "Cisco IOS on UNIX Layer 2 image.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol-l2/",
"product_name": "Cisco IOU L2",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "experimental",
"maintainer": "GNS3 Team",
+2
View File
@@ -5,7 +5,9 @@
"description": "Cisco IOS on UNIX Layer 3 image.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol/",
"product_name": "Cisco IOU L3",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "experimental",
"maintainer": "GNS3 Team",
+2 -1
View File
@@ -5,8 +5,9 @@
"description": "NXOSv is a reference platform for an implementation of the Cisco Nexus operating system, based on the Nexus 7000-series platforms, running as a full virtual machine on a hypervisor. This includes NXAPI and MPLS LDP support.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/nx-os/",
"product_name": "NX-OSv",
"product_url": "http://virl.cisco.com/",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
+45 -352
View File
@@ -5,8 +5,9 @@
"description": "The NX-OSv 9000 is a virtual platform that is designed to simulate the control plane aspects of a network element running Cisco Nexus 9000 software. The NX-OSv 9000 shares the same software image running on Cisco Nexus 9000 hardware platform although no specific hardware emulation is implemented. When the software runs as a virtual machine, line card (LC) ASIC provisioning or any interaction from the control plane to hardware ASIC is handled by the NX-OSv 9000 software data plane.\nThe NX-OSv 9000 for the Cisco Nexus 9000 Series provides a useful tool to enable the devops model and rapidly test changes to the infrastructure or to infrastructure automation tools. This enables network simulations in large scale for customers to validate configuration changes on a simulated network prior to applying them on a production network. Some users have also expressed interest in using the simulation system for feature test ,verification, and automation tooling development and test simualtion prior to deployment. NX-OSv 9000 can be used as a programmability vehicle to validate software defined networks (SDNs) and Network Function Virtualization (NFV) based solutions.",
"vendor_name": "Cisco",
"vendor_url": "http://www.cisco.com/",
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7-x/nx-osv/configuration/guide/b_NX-OSv_9000/b_NX-OSv_chapter_01.html",
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/nx-os-9000/",
"product_name": "NX-OSv 9000",
"product_url": "https://developer.cisco.com/modeling-labs/",
"registry_version": 4,
"status": "stable",
"availability": "service-contract",
@@ -26,12 +27,33 @@
"kvm": "require"
},
"images": [
{
"filename": "nexus9500v64.10.5.1.F.qcow2",
"version": "9500v 10.5.1.F",
"md5sum": "2fa6fb4dd4c5e49d53896d60fa746e59",
"filesize": 2388459520,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(1)"
},
{
"filename": "nexus9300v64.10.5.1.F.qcow2",
"version": "9300v 10.5.1.F",
"md5sum": "2bbc767debbc7c1144eabe176ae67503",
"filesize": 2388393984,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(1)"
},
{
"filename": "nexus9500v64.10.3.1.F.qcow2",
"version": "9500v 10.3.1.F",
"md5sum": "41e3c1c0c003b13f1bf774f0d1873e87",
"filesize": 2097510400,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.3(1)"
},
{
"filename": "nexus9300v64.10.3.1.F.qcow2",
"version": "9300v 10.3.1.F",
"md5sum": "a6ffd2501a5791c11cee319943b912da",
"filesize": 2097086464,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.3(1)"
},
{
"filename": "nexus9500v64.10.1.1.qcow2",
@@ -47,181 +69,6 @@
"filesize": 1990983680,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
},
{
"filename": "nexus9500v.9.3.13.qcow2",
"version": "9500v 9.3.13",
"md5sum": "bacf0f664ee34625c85a9f278b2466a2",
"filesize": 2248409088,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
},
{
"filename": "nexus9300v.9.3.13.qcow2",
"version": "9300v 9.3.13",
"md5sum": "d8ce30cb762df02d77ec27786a2435ad",
"filesize": 2248343552,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
},
{
"filename": "nexus9500v.9.3.12.qcow2",
"version": "9500v 9.3.12",
"md5sum": "452e5cb2a7a25feaa3ba0624a82ff9ca",
"filesize": 1997996032,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
},
{
"filename": "nexus9300v.9.3.12.qcow2",
"version": "9300v 9.3.12",
"md5sum": "7b6b5dad1001e11d6ebb54662616e9f2",
"filesize": 1997930496,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
},
{
"filename": "nexus9500v.9.3.9.qcow2",
"version": "9500v 9.3.9",
"md5sum": "30c25039927f89aebe73ea20d15abd6d",
"filesize": 1980760064,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(9)"
},
{
"filename": "nexus9300v.9.3.9.qcow2",
"version": "9300v 9.3.9",
"md5sum": "e807005cb7d2d2957b4af0e59f368b36",
"filesize": 1980563456,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(9)"
},
{
"filename": "nexus9300v.9.3.8.qcow2",
"version": "9300v 9.3.8",
"md5sum": "f8bd834f8395c134dc98d895c98441af",
"filesize": 1976434688,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(8)"
},
{
"filename": "nexus9500v.9.3.7.qcow2",
"version": "9500v 9.3.7",
"md5sum": "65f669e0dd379a05a8cdbb9d7592a064",
"filesize": 1986068480,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(7)"
},
{
"filename": "nexus9500v.9.3.3.qcow2",
"version": "9500v 9.3.3",
"md5sum": "7230c944041fdaa0e1b18cecccbc9a32",
"filesize": 1714159616,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(3)"
},
{
"filename": "nexus9300v.9.3.3.qcow2",
"version": "9300v 9.3.3",
"md5sum": "8e9a7c4815907ef47d850623f77042e2",
"filesize": 1714225152,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(3)"
},
{
"filename": "nxosv.9.3.1.qcow2",
"version": "9.3.1",
"md5sum": "148fd38cb1ff78df2883f844e172fad9",
"filesize": 1435041792,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(1)?i=!pp"
},
{
"filename": "nxosv-final.9.2.3.qcow2",
"version": "9.2.3",
"md5sum": "74bd9a5b4970e868685f753e48979194",
"filesize": 1357643776,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25283%2529"
},
{
"filename": "nxosv-final.9.2.2.qcow2",
"version": "9.2.2",
"md5sum": "2119702c488552fc4d1b4210a04d4f64",
"filesize": 1344077824,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529"
},
{
"filename": "nxosv-final.9.2.1.qcow2",
"version": "9.2.1",
"md5sum": "1d7fa4654602d7ffbf62544edfe71986",
"filesize": 1330315264,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529"
},
{
"filename": "nxosv-final.7.0.3.I7.9.qcow2",
"version": "7.0.3.I7.9",
"md5sum": "50678c719f6b822c43dd096dbdf359e8",
"filesize": 1003618304,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0(3)I7(9)?i=!pp"
},
{
"filename": "nxosv-final.7.0.3.I7.7.qcow2",
"version": "7.0.3.I7.7",
"md5sum": "5daab34b672f9534c9aee59a6c8903b3",
"filesize": 996212736,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25287%2529"
},
{
"filename": "nxosv-final.7.0.3.I7.6.qcow2",
"version": "7.0.3.I7.6",
"md5sum": "a122ee954b4c11761abd99291b70544e",
"filesize": 1031995392,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25286%2529"
},
{
"filename": "nxosv-final.7.0.3.I7.5.qcow2",
"version": "7.0.3.I7.5",
"md5sum": "68a4008e189c8a35ccb8ee58db9608bb",
"filesize": 1027670016,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25285%2529"
},
{
"filename": "nxosv-final.7.0.3.I7.4.qcow2",
"version": "7.0.3.I7.4",
"md5sum": "1e980c95ca47045ae45ded6e07fabfb8",
"filesize": 985792512,
"download_url": "https://software.cisco.com/download/"
},
{
"filename": "nxosv-final.7.0.3.I7.3.qcow2",
"version": "7.0.3.I7.3",
"md5sum": "9d7a20367bf681a239f14097bbce470a",
"filesize": 983629824,
"download_url": "https://software.cisco.com/download/"
},
{
"filename": "nxosv-final.7.0.3.I7.2.qcow2",
"version": "7.0.3.I7.2",
"md5sum": "17295efb13e83b24a439148449bfd5ab",
"filesize": 906231808,
"download_url": "https://software.cisco.com/download/"
},
{
"filename": "nxosv-final.7.0.3.I7.1.qcow2",
"version": "7.0.3.I7.1",
"md5sum": "3c122f27d0c3684c63657207eadf4d06",
"filesize": 903151616,
"download_url": "https://software.cisco.com/download/"
},
{
"filename": "nxosv-final.7.0.3.I6.1.qcow2",
"version": "7.0.3.I6.1",
"md5sum": "18bb991b814a508d1190575f99deed99",
"filesize": 780402688,
"download_url": "https://software.cisco.com/download/"
},
{
"filename": "nxosv-final.7.0.3.I5.2.qcow2",
"version": "7.0.3.I5.2",
"md5sum": "c06aaa02f758a64fd8fee9406756f1da",
"filesize": 777715712,
"download_url": "https://software.cisco.com/download/"
},
{
"filename": "nxosv-final.7.0.3.I5.1.qcow2",
"version": "7.0.3.I5.1",
"md5sum": "201ea658fa4c57452ee4b2aa4f5262a7",
"filesize": 784990208,
"download_url": "https://software.cisco.com/download/"
},
{
"filename": "OVMF-edk2-stable202305.fd",
"version": "stable202305",
@@ -233,6 +80,27 @@
}
],
"versions": [
{
"name": "9500v 10.5.1.F",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9500v64.10.5.1.F.qcow2"
}
},
{
"name": "9300v 10.5.1.F",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9300v64.10.5.1.F.qcow2"
}
},
{
"name": "9500v 10.3.1.F",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9500v64.10.3.1.F.qcow2"
}
},
{
"name": "9300v 10.3.1.F",
"images": {
@@ -253,181 +121,6 @@
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9300v.10.1.1.qcow2"
}
},
{
"name": "9500v 9.3.13",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9500v.9.3.13.qcow2"
}
},
{
"name": "9300v 9.3.13",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9300v.9.3.13.qcow2"
}
},
{
"name": "9500v 9.3.12",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9500v.9.3.12.qcow2"
}
},
{
"name": "9300v 9.3.12",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9300v.9.3.12.qcow2"
}
},
{
"name": "9500v 9.3.9",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9500v.9.3.9.qcow2"
}
},
{
"name": "9300v 9.3.9",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9300v.9.3.9.qcow2"
}
},
{
"name": "9300v 9.3.8",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9300v.9.3.8.qcow2"
}
},
{
"name": "9500v 9.3.7",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9500v.9.3.7.qcow2"
}
},
{
"name": "9500v 9.3.3",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9500v.9.3.3.qcow2"
}
},
{
"name": "9300v 9.3.3",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nexus9300v.9.3.3.qcow2"
}
},
{
"name": "9.3.1",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv.9.3.1.qcow2"
}
},
{
"name": "9.2.3",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.9.2.3.qcow2"
}
},
{
"name": "9.2.2",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.9.2.2.qcow2"
}
},
{
"name": "9.2.1",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.9.2.1.qcow2"
}
},
{
"name": "7.0.3.I7.9",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.9.qcow2"
}
},
{
"name": "7.0.3.I7.7",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.7.qcow2"
}
},
{
"name": "7.0.3.I7.6",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.6.qcow2"
}
},
{
"name": "7.0.3.I7.5",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.5.qcow2"
}
},
{
"name": "7.0.3.I7.4",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.4.qcow2"
}
},
{
"name": "7.0.3.I7.3",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.3.qcow2"
}
},
{
"name": "7.0.3.I7.2",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.2.qcow2"
}
},
{
"name": "7.0.3.I7.1",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I7.1.qcow2"
}
},
{
"name": "7.0.3.I6.1",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I6.1.qcow2"
}
},
{
"name": "7.0.3.I5.2",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I5.2.qcow2"
}
},
{
"name": "7.0.3.I5.1",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "nxosv-final.7.0.3.I5.1.qcow2"
}
}
]
}
+13
View File
@@ -30,6 +30,13 @@
"images": [
{
"filename": "EXOS-VM_32.7.2.19.qcow2",
"version": "32.7.2.19",
"md5sum": "eba580a2e18d2a9cc972c9ece8917ea8",
"filesize": 236847104,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_32.7.2.19.qcow2"
},
{
"filename": "EXOS-VM_v32.6.3.126.qcow2",
"version": "32.6.3.126",
"md5sum": "5856b6c427bd605fe1c7adb6ee6b2659",
@@ -41,6 +48,12 @@
"versions": [
{
"name": "32.7.2.19",
"images": {
"hda_disk_image": "EXOS-VM_32.7.2.19.qcow2"
}
},
{
"name": "32.6.3.126",
"images": {
@@ -28,6 +28,13 @@
"options": "-nographic"
},
"images": [
{
"filename": "FEGNS3.9.3.0.0.qcow2",
"version": "v9.3.0.0",
"md5sum": "2abfa8d64219aa75522238f87b782726",
"filesize": 490209280,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/FEGNS3.9.3.0.0.qcow2"
},
{
"filename": "VOSSGNS3.8.10.1.0.qcow2",
"version": "v8.10.1.0",
@@ -93,6 +100,13 @@
}
],
"versions": [
{
"name": "v9.3.0.0",
"images":
{
"hda_disk_image": "FEGNS3.9.3.0.0.qcow2"
}
},
{
"name": "v8.10.1.0",
"images":
+30
View File
@@ -26,6 +26,22 @@
"options": "-nographic"
},
"images": [
{
"filename": "Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2",
"version": "41-1.4",
"md5sum": "8efc9edc04f38775de72ce067166b2a1",
"filesize": 491716608,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images",
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2",
"version": "40-1.14",
"md5sum": "3eed4b1a9de35208ed30d9bb72c1522d",
"filesize": 397475840,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images",
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2"
},
{
"filename": "Fedora-Cloud-Base-39-1.5.x86_64.qcow2",
"version": "39-1.5",
@@ -52,6 +68,20 @@
}
],
"versions": [
{
"name": "41-1.4",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "40-1.14",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "39-1.5",
"images": {
+42
View File
@@ -29,6 +29,27 @@
"kvm": "allow"
},
"images": [
{
"filename": "FAZ_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
"version": "7.4.6",
"md5sum": "fba982436ff430465df6f6f283a2bd71",
"filesize": 511053824,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
"version": "7.4.5",
"md5sum": "78464ee460fce69c360901ca9ccfe4a0",
"filesize": 510988288,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
"version": "7.4.4",
"md5sum": "7bec1725b1e39dd66f4daae07492f1b4",
"filesize": 511217664,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
"version": "7.4.3",
@@ -277,6 +298,27 @@
}
],
"versions": [
{
"name": "7.4.6",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.5",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.4",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.3",
"images": {
+42
View File
@@ -28,6 +28,27 @@
"kvm": "allow"
},
"images": [
{
"filename": "FGT_VM64_KVM-v7.4.7.M-build2731-FORTINET.out.kvm.qcow2",
"version": "7.4.7",
"md5sum": "2ce4039789e84b3fe85565e0c4110718",
"filesize": 103677952,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.4.6.M-build2726-FORTINET.out.kvm.qcow2",
"version": "7.4.6",
"md5sum": "b787c1c5ab365f267d7e4e88b1cdc10b",
"filesize": 103677952,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.4.5.M-build2702-FORTINET.out.kvm.qcow2",
"version": "7.4.5",
"md5sum": "8465e74c4ef1751619ebb989838d457c",
"filesize": 102367232,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.4.4.F-build2662-FORTINET.out.kvm.qcow2",
"version": "7.4.4",
@@ -388,6 +409,27 @@
}
],
"versions": [
{
"name": "7.4.7",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v7.4.7.M-build2731-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.6",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v7.4.6.M-build2726-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.5",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v7.4.5.M-build2702-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.4",
"images": {
+43 -1
View File
@@ -29,9 +29,30 @@
"kvm": "allow"
},
"images": [
{
"filename": "FMG_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
"version": "7.4.6",
"md5sum": "7cb219e1070d393f61cf750d818b23b1",
"filesize": 349122560,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
"version": "7.4.5",
"md5sum": "fa59ddce0cb933741f16866472026723",
"filesize": 349769728,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
"version": "7.4.4",
"md5sum": "770727bb30555e6938308bbf95f19555",
"filesize": 349847552,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
"version": "7.4.23",
"version": "7.4.3",
"md5sum": "b01d9f86aa27c538407d518df1326863",
"filesize": 346107904,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
@@ -277,6 +298,27 @@
}
],
"versions": [
{
"name": "7.4.6",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.5",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.4",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.3",
"images": {
+8 -8
View File
@@ -25,19 +25,19 @@
},
"images": [
{
"filename": "rtr.qcow2",
"version": "20.7.1",
"md5sum": "4707415d15d20ced92423d90e52eedcd",
"filesize": 254767616,
"download_url": "http://freerouter.nop.hu/",
"direct_download_url": "http://dl.nop.hu/rtr.qcow2"
"filename": "rtr-x86_64.qcow2",
"version": "25.8.29",
"md5sum": "13d72fdfd772258808a9d4b75fa67083",
"filesize": 73269248,
"download_url": "http://www.freertr.org/",
"direct_download_url": "http://dl.nop.hu/rtr-x86_64.qcow2"
}
],
"versions": [
{
"name": "20.7.1",
"name": "25.8.29",
"images": {
"hda_disk_image": "rtr.qcow2"
"hda_disk_image": "rtr-x86_64.qcow2"
}
}
]
+188
View File
@@ -0,0 +1,188 @@
{
"appliance_id": "4d351078-c6f5-444c-ab30-0ef20e3d8c53",
"name": "Infix",
"category": "router",
"description": "Infix OS is a free Linux-based operating system with made-easy management using NETCONF, RESTCONF, or the built-in command line interface (CLI). It is suitable for both end-devices with a single Ethernet port and switches/routers with multiple ports. Immutable by design, extensions are possible using Docker containers.",
"vendor_name": "KernelKit",
"vendor_url": "https://github.com/kernelkit",
"vendor_logo_url": "https://kernelkit.org/assets/img/jack.png",
"product_name": "Infix",
"registry_version": 4,
"documentation_url": "https://kernelkit.org/infix/latest/",
"status": "stable",
"availability": "free",
"maintainer": "KernelKit",
"maintainer_email": "kernelkit@googlegroups.com",
"usage": "Default login, user/pass: admin/admin\n\nType 'cli' (and Enter) followed by 'help' for an overview of commands and relevant configuration files.",
"port_name_format": "eth{0}",
"linked_clone": true,
"symbol": "router_red.svg",
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 10,
"ram": 512,
"cpus": 1,
"hda_disk_interface": "virtio",
"arch": "x86_64",
"console_type": "telnet",
"process_priority": "normal",
"kvm": "allow"
},
"images": [
{
"filename": "OVMF-edk2-stable202305.fd",
"version": "stable202305",
"md5sum": "6c4cf1519fec4a4b95525d9ae562963a",
"filesize": 4194304,
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-edk2-stable202305.fd.zip/download",
"compression": "zip"
},
{
"filename": "infix-x86_64-disk-24.11.1.img",
"filesize": 536870912,
"md5sum": "673a123fe122d1c2f5724baf9965a19d",
"version": "24.11.1",
"download_url": "https://github.com/kernelkit/infix/releases/download/v24.11.1/infix-x86_64-24.11.1.tar.gz",
"compression": "gzip"
},
{
"filename": "infix-x86_64-disk-25.01.0.img",
"filesize": 536870912,
"md5sum": "a814d93b385116b4a35712c445b5f830",
"version": "25.01.0",
"download_url": "https://github.com/kernelkit/infix/releases/download/v25.01.0/infix-x86_64-25.01.0.tar.gz",
"compression": "gzip"
},
{
"filename": "infix-x86_64-disk-25.02.0.img",
"filesize": 536870912,
"md5sum": "8e29474c97df3486eb063a8af5043f50",
"version": "25.02.0",
"download_url": "https://github.com/kernelkit/infix/releases/download/v25.02.0/infix-x86_64-25.02.0.tar.gz",
"compression": "gzip"
},
{
"filename": "infix-x86_64-disk-25.03.0.img",
"filesize": 536870912,
"md5sum": "5e1ed1081cd1673bfed4a9b5b1c58e08",
"version": "25.03.0",
"download_url": "https://github.com/kernelkit/infix/releases/download/v25.03.0/infix-x86_64-25.03.0.tar.gz",
"compression": "gzip"
},
{
"filename": "infix-x86_64-disk-25.04.0.qcow2",
"filesize": 259723776,
"md5sum": "84bd999513325d0007d0e6587abc6140",
"version": "25.04.0",
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.04.0/infix-x86_64-disk-25.04.0.qcow2"
},
{
"filename": "infix-x86_64-disk-25.05.0.qcow2",
"filesize": 259958784,
"md5sum": "a6b1b3a6bccc60bb5214f2b864602fde",
"version": "25.05.0",
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.05.0/infix-x86_64-disk-25.05.0.qcow2"
},
{
"filename": "infix-x86_64-disk-25.08.0.qcow2",
"filesize": 284453888,
"md5sum": "5fbf146d2ac73d1bd8fa1c509d6169b1",
"version": "25.08.0",
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.08.0/infix-x86_64-disk-25.08.0.qcow2"
},
{
"filename": "infix-x86_64-disk-25.09.0.qcow2",
"filesize": 285120000,
"md5sum": "9761968406780a5b28311b8527f8629f",
"version": "25.09.0",
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.09.0/infix-x86_64-disk-25.09.0.qcow2"
},
{
"filename": "infix-x86_64-disk-25.10.0.qcow2",
"filesize": 288818688,
"md5sum": "781d0fce9fbf789f6ea6ff10dc104afb",
"version": "25.10.0",
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.10.0/infix-x86_64-disk-25.10.0.qcow2"
},
{
"filename": "infix-x86_64-disk-25.11.0.qcow2",
"filesize": 288930816,
"md5sum": "e2eb1a4fff9d56815f37c2e82a6279fb",
"version": "25.11.0",
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.11.0/infix-x86_64-disk-25.11.0.qcow2"
}
],
"versions": [
{
"name": "25.11.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.11.0.qcow2"
}
},
{
"name": "25.10.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.10.0.qcow2"
}
},
{
"name": "25.09.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.09.0.qcow2"
}
},
{
"name": "25.08.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.08.0.qcow2"
}
},
{
"name": "25.05.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.05.0.qcow2"
}
},
{
"name": "25.04.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.04.0.qcow2"
}
},
{
"name": "25.03.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.03.0.img"
}
},
{
"name": "25.02.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.02.0.img"
}
},
{
"name": "25.01.0",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-25.01.0.img"
}
},
{
"name": "24.11.1",
"images": {
"bios_image": "OVMF-edk2-stable202305.fd",
"hda_disk_image": "infix-x86_64-disk-24.11.1.img"
}
}
]
}
@@ -0,0 +1,75 @@
{
"appliance_id": "12394e0d-9ac5-4da5-8e91-94a462536b61",
"name": "vJunos-router",
"category": "router",
"description": "vJunos-router",
"vendor_name": "Juniper",
"vendor_url": "https://www.juniper.net",
"documentation_url": "https://www.juniper.net/documentation/product/us/en/vjunos-router/",
"product_name": "vJunos Router",
"registry_version": 6,
"status": "stable",
"availability": "free",
"maintainer": "AAm-kun",
"maintainer_email": "github@sugarpapa.mozmail.com",
"usage": "GNS3 SHOULD be a baremetal installation. Using the GNS3 VM MIGHT result in unwanted issues. Default user is root. No password is needed.",
"symbol": "juniper-vmx.svg",
"first_port_name": "ge-0/0/0",
"port_name_format": "ge-0/0/{port0}",
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 17,
"ram": 5120,
"cpus": 4,
"hda_disk_interface": "virtio",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-serial mon:stdio -nographic -smbios type=1,product=VM-VMX,family=lab -cpu host",
"on_close": "power_off"
},
"images": [
{
"filename": "vJunos-router-24.2R1-S2.qcow2",
"version": "24.2R1-S2",
"md5sum": "dd906b4d19463e22f3e1a297ff1a7464",
"filesize": 3675783168,
"download_url": "https://support.juniper.net/support/downloads/?p=vjunos-router"
},
{
"filename": "vJunos-router-23.4R2-S2.1.qcow2",
"version": "23.4R2-S2.1",
"md5sum": "e25f5acdfc6c076d0023fd8289bcdd89",
"filesize": 3644063744,
"download_url": "https://support.juniper.net/support/downloads/?p=vjunos-router"
},
{
"filename": "vJunos-router-23.2R1.15.qcow2",
"version": "23.2R1.15",
"md5sum": "18670fb67633822697fdd3cf982e7eb1",
"filesize": 3653566464,
"download_url": "https://support.juniper.net/support/downloads/?p=vjunos-router"
}
],
"versions": [
{
"images": {
"hda_disk_image": "vJunos-router-24.2R1-S2.qcow2"
},
"name": "24.2R1-S2"
},
{
"images": {
"hda_disk_image": "vJunos-router-23.4R2-S2.1.qcow2"
},
"name": "23.4R2-S2.1"
},
{
"images": {
"hda_disk_image": "vJunos-router-23.2R1.15.qcow2"
},
"name": "23.2R1.15"
}
]
}
+13 -216
View File
@@ -11,237 +11,34 @@
"status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "Default password is toor\nEnable persistence by selecting boot option 'Live USB Persistence'",
"usage": "Default username is kali and the default password is kali",
"port_name_format": "eth{0}",
"qemu": {
"adapter_type": "e1000",
"adapters": 8,
"ram": 1024,
"ram": 2048,
"cpus": 2,
"hda_disk_interface": "ide",
"arch": "x86_64",
"console_type": "vnc",
"boot_priority": "d",
"kvm": "require"
},
"images": [
{
"filename": "kali-linux-2021.1-live-amd64.iso",
"version": "2021.1",
"md5sum": "3a3716fef866e5c29a1c1ccfc94264b5",
"filesize": 3591385088,
"download_url": "http://cdimage.kali.org/kali-2021.1/",
"direct_download_url": "http://cdimage.kali.org/kali-2021.1/kali-linux-2021.1-live-amd64.iso"
},
{
"filename": "kali-linux-2019.3-amd64.iso",
"version": "2019.3",
"md5sum": "9c6fb00558f78ed06992d89f745ef975",
"filesize": 3037736960,
"download_url": "http://old.kali.org/kali-images/kali-2019.3",
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.3/kali-linux-2019.3-amd64.iso"
},
{
"filename": "kali-linux-2019.2-amd64.iso",
"version": "2019.2",
"md5sum": "0f89b6225d7ea9c18682f7cc541c1179",
"filesize": 3353227264,
"download_url": "http://old.kali.org/kali-images/kali-2019.2",
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.2/kali-linux-2019.2-amd64.iso"
},
{
"filename": "kali-linux-mate-2019.2-amd64.iso",
"version": "2019.2 (MATE)",
"md5sum": "fec8dd7009f932c51a74323df965a709",
"filesize": 3313217536,
"download_url": "http://old.kali.org/kali-images/kali-2019.2",
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.2/kali-linux-mate-2019.2-amd64.iso"
},
{
"filename": "kali-linux-2019.1a-amd64.iso",
"version": "2019.1a",
"md5sum": "58c6111ed0be1919ea87267e7e65ab0f",
"filesize": 3483873280,
"download_url": "http://old.kali.org/kali-images/kali-2019.1a",
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.1a/kali-linux-2019.1a-amd64.iso"
},
{
"filename": "kali-linux-2018.4-amd64.iso",
"version": "2018.4",
"md5sum": "1b2d598bb8d2003e6207c119c0ba42fe",
"filesize": 3139436544,
"download_url": "http://old.kali.org/kali-images/kali-2018.4",
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.4/kali-linux-2018.4-amd64.iso"
},
{
"filename": "kali-linux-2018.3a-amd64.iso",
"version": "2018.3a",
"md5sum": "2da675d016bd690c05e180e33aa98b94",
"filesize": 3192651776,
"download_url": "http://old.kali.org/kali-images/kali-2018.3a",
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.3a/kali-linux-2018.3a-amd64.iso"
},
{
"filename": "kali-linux-2018.1-amd64.iso",
"version": "2018.1",
"md5sum": "a3feb90df5b71b3c7f4a02bdddf221d7",
"filesize": 3028500480,
"download_url": "http://old.kali.org/kali-images/kali-2018.1",
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.1/kali-linux-2018.1-amd64.iso"
},
{
"filename": "kali-linux-2017.3-amd64.iso",
"version": "2017.3",
"md5sum": "b465580c897e94675ac1daf031fa66b9",
"filesize": 2886402048,
"download_url": "http://old.kali.org/kali-images/kali-2017.3/",
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.3/kali-linux-2017.3-amd64.iso"
},
{
"filename": "kali-linux-2017.2-amd64.iso",
"version": "2017.2",
"md5sum": "541654f8f818450dc0db866a0a0f6eec",
"filesize": 3020619776,
"download_url": "http://old.kali.org/kali-images/kali-2017.2/",
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.2/kali-linux-2017.2-amd64.iso"
},
{
"filename": "kali-linux-2017.1-amd64.iso",
"version": "2017.1",
"md5sum": "c8e742283929d7a12dbe7c58e398ff08",
"filesize": 2794307584,
"download_url": "http://old.kali.org/kali-images/kali-2017.1/",
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.1/kali-linux-2017.1-amd64.iso"
},
{
"filename": "kali-linux-2016.2-amd64.iso",
"version": "2016.2",
"md5sum": "3d163746bc5148e61ad689d94bc263f9",
"filesize": 3076767744,
"download_url": "http://old.kali.org/kali-images/kali-2016.2/",
"direct_download_url": "http://old.kali.org/kali-images/kali-2016.2/kali-linux-2016.2-amd64.iso"
},
{
"filename": "kali-linux-2016.1-amd64.iso",
"version": "2016.1",
"md5sum": "2e1230dc14036935b3279dfe3e49ad39",
"filesize": 2945482752,
"download_url": "http://old.kali.org/kali-images/kali-2016.1/",
"direct_download_url": "http://old.kali.org/kali-images/kali-2016.1/kali-linux-2016.1-amd64.iso"
},
{
"filename": "kali-linux-2.0-amd64.iso",
"version": "2.0",
"md5sum": "ef192433017c5d99a156eaef51fd389d",
"filesize": 3320512512,
"download_url": "https://www.offensive-security.com/kali-linux-vmware-arm-image-download/",
"direct_download_url": "http://images.kali.org/Kali-Linux-2.0.0-vm-amd64.7z"
},
{
"filename": "kali-linux-persistence-1gb.qcow2",
"version": "1.0",
"md5sum": "14e9c92f3ba5a0bd1128c1ea26a129ea",
"filesize": 34734080,
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/kali-linux-persistence-1gb.qcow2/download"
{
"filename": "kali-linux-2025.4-qemu-amd64.qcow2",
"version": "2025.4",
"md5sum": "a4be43351b5deb5b2823cb38a73b2095",
"filesize": 15719268352,
"download_url": "https://cdimage.kali.org/kali-2025.4/",
"direct_download_url": "https://cdimage.kali.org/kali-2025.4/kali-linux-2025.4-qemu-amd64.7z",
"compression": "7z"
}
],
"versions": [
{
"name": "2021.1",
"name": "2025.4",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2021.1-live-amd64.iso"
}
},
{
"name": "2019.3",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2019.3-amd64.iso"
}
},
{
"name": "2019.2",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2019.2-amd64.iso"
}
},
{
"name": "2019.2 (MATE)",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-mate-2019.2-amd64.iso"
}
},
{
"name": "2019.1a",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2019.1a-amd64.iso"
}
},
{
"name": "2018.4",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2018.4-amd64.iso"
}
},
{
"name": "2018.3a",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2018.3a-amd64.iso"
}
},
{
"name": "2018.1",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2018.1-amd64.iso"
}
},
{
"name": "2017.3",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2017.3-amd64.iso"
}
},
{
"name": "2017.2",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2017.2-amd64.iso"
}
},
{
"name": "2017.1",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2017.1-amd64.iso"
}
},
{
"name": "2016.2",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2016.2-amd64.iso"
}
},
{
"name": "2016.1",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2016.1-amd64.iso"
}
},
{
"name": "2.0",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2.0-amd64.iso"
"hda_disk_image": "kali-linux-2025.4-qemu-amd64.qcow2"
}
}
]
@@ -0,0 +1,22 @@
{
"appliance_id": "1174e46d-4a29-4554-a1e8-71ed90682295",
"name": "MikroTik WinBox 2026",
"category": "guest",
"description": "Mikrotik's WinBox router management software for GNS3 2026",
"vendor_name": "MikroTik",
"vendor_url": "https://mikrotik.com",
"documentation_url": "https://mikrotik.com/winbox",
"product_name": "MikroTik WinBox",
"product_url": "https://mikrotik.com/winbox",
"registry_version": 4,
"status": "stable",
"availability": "free",
"maintainer": "h3ck13r",
"maintainer_email": "pisdushko1886@gmail.com",
"usage": "Connect WinBox to a MikroTik CHR port and start them both. Open WinBox console and wait until MikroTik appear in neighbors tab, provide credentials and connect.",
"docker": {
"adapters": 1,
"image": "snatao808/winbox-mikrotik-2026",
"console_type": "vnc"
}
}
+44
View File
@@ -0,0 +1,44 @@
{
"appliance_id": "bb9ff73a-701e-40e8-b68a-6a6efeb04e99",
"name": "NethSecurity",
"category": "firewall",
"description": "NethSecurity is an Unified Threat Management (UTM) solution that provides a comprehensive suite of security features, including firewall, content filtering, deep packet inspection (DPI) using Netifyd, Dedalo hotspot, OpenVPN, and an optional remote controller. It is designed to be easy to install and configure, making it a good choice for both small and medium-sized businesses (SMBs) as well as enterprise organizations.",
"vendor_name": "Nethesis",
"vendor_url": "https://www.nethesis.it/",
"documentation_url": "https://docs.nethsecurity.org/en/latest/",
"product_name": "NethSecurity",
"product_url": "https://nethsecurity.org/",
"registry_version": 4,
"status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "Ethernet0 is the LAN link, Ethernet1 the WAN link. The default username is root and the password is Nethesis,1234",
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 2,
"ram": 1024,
"hda_disk_interface": "scsi",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "allow"
},
"images": [
{
"filename": "nethsecurity-8-24.10.0-ns.1.5.1-x86-64-generic-squashfs-combined-efi.img",
"version": "8-24.10.0-ns.1.5.1",
"md5sum": "be670218effca1b86dac6b8d95012791",
"filesize": 331644416,
"download_url": "https://nethsecurity.org/download",
"direct_download_url": "https://updates.nethsecurity.nethserver.org/stable/8-24.10.0-ns.1.5.1/targets/x86/64/nethsecurity-8-24.10.0-ns.1.5.1-x86-64-generic-squashfs-combined-efi.img.gz",
"compression": "gzip"
}
],
"versions": [
{
"name": "8-24.10.0-ns.1.5.1",
"images": {
"hda_disk_image": "nethsecurity-8-24.10.0-ns.1.5.1-x86-64-generic-squashfs-combined-efi.img"
}
}
]
}
+16 -1
View File
@@ -23,6 +23,15 @@
"kvm": "allow"
},
"images": [
{
"filename": "openwrt-24.10.2-x86-64-generic-ext4-combined.img",
"version": "24.10.2",
"md5sum": "0769916238524161b0a9a639ae261381",
"filesize": 126353408,
"download_url": "https://downloads.openwrt.org/releases/24.10.2/targets/x86/64/",
"direct_download_url": "https://downloads.openwrt.org/releases/24.10.2/targets/x86/64/openwrt-24.10.2-x86-64-generic-ext4-combined.img.gz",
"compression": "gzip"
},
{
"filename": "openwrt-23.05.0-x86-64-generic-ext4-combined.img",
"version": "23.05.0",
@@ -223,7 +232,13 @@
}
],
"versions": [
{
{
"name": "24.10.2",
"images": {
"hda_disk_image": "openwrt-24.10.2-x86-64-generic-ext4-combined.img"
}
},
{
"name": "23.05.0",
"images": {
"hda_disk_image": "openwrt-23.05.0-x86-64-generic-ext4-combined.img"
+14
View File
@@ -25,6 +25,20 @@
"kvm": "require"
},
"images": [
{
"filename": "OPNsense-25.7-nano-amd64.img",
"version": "25.7",
"md5sum": "07aa8b44ebc57fa9ca0145f777901a59",
"filesize": 3221225472,
"download_url": "https://opnsense.c0urier.net/releases/25.7/"
},
{
"filename": "OPNsense-25.1-nano-amd64.img",
"version": "25.1",
"md5sum": "9c119e4fed7dd7c1c162d8be4088d983",
"filesize": 3221225472,
"download_url": "https://opnsense.c0urier.net/releases/25.1/"
},
{
"filename": "OPNsense-24.7-nano-amd64.img",
"version": "24.7",
+31 -1
View File
@@ -26,6 +26,14 @@
"options": "-cpu host -nographic"
},
"images": [
{
"filename": "OL9U5_x86_64-kvm-b259.qcow2",
"version": "9.5",
"md5sum": "05e9b62c408ab49a02d6833fc683d1ad",
"filesize": 652935168,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u5/x86_64/OL9U5_x86_64-kvm-b259.qcow2"
},
{
"filename": "OL9U2_x86_64-kvm-b197.qcow",
"version": "9.2",
@@ -42,6 +50,14 @@
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u1/x86_64/OL9U1_x86_64-kvm-b158.qcow"
},
{
"filename": "OL8U10_x86_64-kvm-b258.qcow2",
"version": "8.10",
"md5sum": "bb07581af5122515b6822595ded5deef",
"filesize": 1251672064,
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u10/x86_64/OL8U10_x86_64-kvm-b258.qcow2"
},
{
"filename": "OL8U8_x86_64-kvm-b198.qcow",
"version": "8.8",
@@ -76,7 +92,14 @@
}
],
"versions": [
{
{
"name": "9.5",
"images": {
"hda_disk_image": "OL9U5_x86_64-kvm-b259.qcow2",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "9.2",
"images": {
"hda_disk_image": "OL9U2_x86_64-kvm-b197.qcow",
@@ -90,6 +113,13 @@
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "8.10",
"images": {
"hda_disk_image": "OL8U10_x86_64-kvm-b258.qcow2",
"cdrom_image": "oracle-cloud-init-data.iso"
}
},
{
"name": "8.8",
"images": {
+14
View File
@@ -24,6 +24,13 @@
"process_priority": "normal"
},
"images": [
{
"filename": "pfSense-CE-2.7.2-RELEASE-amd64.iso",
"version": "2.7.2",
"md5sum": "50c3e723d68ec74d038041a34fa846f8",
"filesize": 874672128,
"download_url": "https://www.pfsense.org/download/mirror.php?section=downloads"
},
{
"filename": "pfSense-CE-2.7.0-RELEASE-amd64.iso",
"version": "2.7.0",
@@ -76,6 +83,13 @@
}
],
"versions": [
{
"name": "2.7.2",
"images": {
"hda_disk_image": "empty100G.qcow2",
"cdrom_image": "pfSense-CE-2.7.2-RELEASE-amd64.iso"
}
},
{
"name": "2.7.0",
"images": {
+57 -1
View File
@@ -13,7 +13,7 @@
"availability": "service-contract",
"maintainer": "Da-Geek",
"maintainer_email": "dageek@dageeks-geeks.gg",
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.3/x86_64/product-software attach/customize rhel-cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.5/x86_64/product-software attach/customize rhel-cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 1,
@@ -26,6 +26,20 @@
"options": "-cpu host -nographic"
},
"images": [
{
"filename": "rhel-9.5-x86_64-kvm.qcow2",
"version": "9.5",
"md5sum": "8174396d5cb47727c59dd04dd9a05418",
"filesize": 974389248,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.5/x86_64/product-software"
},
{
"filename": "rhel-9.4-x86_64-kvm.qcow2",
"version": "9.4",
"md5sum": "77a2ca9a4cb0448260e04f0d2ebf9807",
"filesize": 957218816,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.4/x86_64/product-software"
},
{
"filename": "rhel-9.3-x86_64-kvm.qcow2",
"version": "9.3",
@@ -54,6 +68,20 @@
"filesize": 696582144,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/9.0/x86_64/product-software"
},
{
"filename": "rhel-8.10-x86_64-kvm.qcow2",
"version": "8.10",
"md5sum": "5fda99fcab47e3b235c6ccdb6e80d362",
"filesize": 1065091072,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.10/x86_64/product-software"
},
{
"filename": "rhel-8.9-x86_64-kvm.qcow2",
"version": "8.9",
"md5sum": "23295fe508678cbdebfbdbd41ef6e6e2",
"filesize": 971833344,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.9/x86_64/product-software"
},
{
"filename": "rhel-8.8-x86_64-kvm.qcow2",
"version": "8.8",
@@ -119,6 +147,20 @@
}
],
"versions": [
{
"name": "9.5",
"images": {
"hda_disk_image": "rhel-9.5-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "9.4",
"images": {
"hda_disk_image": "rhel-9.4-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "9.3",
"images": {
@@ -147,6 +189,20 @@
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "8.10",
"images": {
"hda_disk_image": "rhel-8.10-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "8.9",
"images": {
"hda_disk_image": "rhel-8.9-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "8.8",
"images": {
+15
View File
@@ -26,6 +26,14 @@
"options": "-nographic -cpu host"
},
"images": [
{
"filename": "Rocky-9-GenericCloud-Base-9.5-20241118.0.x86_64.qcow2",
"version": "9.5",
"md5sum": "880eccf788301bb9f34669faebe09276",
"filesize": 609812480,
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
"direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.5-20241118.0.x86_64.qcow2"
},
{
"filename": "Rocky-9-GenericCloud-Base-9.3-20231113.0.x86_64.qcow2",
"version": "9.3",
@@ -68,6 +76,13 @@
}
],
"versions": [
{
"name": "9.5",
"images": {
"hda_disk_image": "Rocky-9-GenericCloud-Base-9.5-20241118.0.x86_64.qcow2",
"cdrom_image": "rocky-cloud-init-data.iso"
}
},
{
"name": "9.3",
"images": {
@@ -0,0 +1,50 @@
{
"appliance_id": "60801097-332e-4f40-a63e-8ad62047c01f",
"name": "Stormshield EVA",
"category": "firewall",
"description": "Stormshield EVA (Elastic Virtual Appliance) is a french virtual firewall designed to protect network infrastructures. It offers advanced features such as filtering, intrusion prevention (IPS), VPN management (IPSec/SSL), and access control.",
"vendor_name": "Stormshield",
"vendor_url": "https://www.stormshield.com/",
"vendor_logo_url": "https://www.stormshield.com/wp-content/uploads/stormshield-logo.png",
"documentation_url": "https://www.stormshield.com/fr/ressourcescenter/network-security-elastic-virtual-appliances/",
"product_name": "Stormshield EVA",
"product_url": "https://www.stormshield.com/fr/produits-et-services/produits/protection-des-reseaux/nos-produits/appliances-virtuelles/",
"registry_version": 4,
"status": "stable",
"availability": "service-contract",
"maintainer": "Samy SCANNA",
"maintainer_email": "samy.scanna@outlook.com",
"usage": "After the first boot, the appliance automatically runs the configuration script to set up the password, and network interfaces.",
"symbol": "stormshield.png",
"port_name_format": "port{port1}",
"qemu": {
"adapter_type": "vmxnet3",
"adapters": 8,
"ram": 2048,
"cpus": 1,
"hda_disk_interface": "scsi",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "allow",
"options": "-serial stdio",
"on_close": "shutdown_signal",
"process_priority": "normal"
},
"images": [
{
"filename": "utm-SNS-EVA-4.3.33-kvm.qcow2",
"version": "4.3.33",
"md5sum": "21d94d0e20f2e270f06c5853fd750d5b",
"filesize": 284360704,
"download_url": "https://mystormshield.eu/product/download/"
}
],
"versions": [
{
"images": {
"hda_disk_image": "utm-SNS-EVA-4.3.33-kvm.qcow2"
},
"name": "4.3.33"
}
]
}
+52
View File
@@ -30,6 +30,34 @@
"on_close": "shutdown_signal"
},
"images": [
{
"filename": "vyos-1.4.4-kvm-amd64.qcow2",
"version": "1.4.4",
"md5sum": "942dae45d63924b58b65d069890765d4",
"filesize": 518782976,
"download_url": "https://support.vyos.io/"
},
{
"filename": "vyos-1.4.3-kvm-amd64.qcow2",
"version": "1.4.3",
"md5sum": "4eec0ba2ec367bbbdf2d2f212f947746",
"filesize": 515047424,
"download_url": "https://support.vyos.io/"
},
{
"filename": "vyos-1.4.2-kvm-amd64.qcow2",
"version": "1.4.2",
"md5sum": "78c5935e05a7bbd94a639fcee18f5799",
"filesize": 514064384,
"download_url": "https://support.vyos.io/"
},
{
"filename": "vyos-1.4.1-kvm-amd64.qcow2",
"version": "1.4.1",
"md5sum": "5b8ebcd9905719d24405ed093afdd8ba",
"filesize": 513736704,
"download_url": "https://support.vyos.io/"
},
{
"filename": "vyos-1.4.0-kvm-amd64.qcow2",
"version": "1.4.0",
@@ -109,6 +137,30 @@
}
],
"versions": [
{
"name": "1.4.4",
"images": {
"hda_disk_image": "vyos-1.4.4-kvm-amd64.qcow2"
}
},
{
"name": "1.4.3",
"images": {
"hda_disk_image": "vyos-1.4.3-kvm-amd64.qcow2"
}
},
{
"name": "1.4.2",
"images": {
"hda_disk_image": "vyos-1.4.2-kvm-amd64.qcow2"
}
},
{
"name": "1.4.1",
"images": {
"hda_disk_image": "vyos-1.4.1-kvm-amd64.qcow2"
}
},
{
"name": "1.4.0",
"images": {
+3 -2
View File
@@ -24,6 +24,7 @@ import socket
import shutil
import re
import logging
import inspect
log = logging.getLogger(__name__)
@@ -196,7 +197,7 @@ class BaseManager:
node_id = str(uuid4())
node = self._NODE_CLASS(name, node_id, project, self, *args, **kwargs)
if asyncio.iscoroutinefunction(node.create):
if inspect.iscoroutinefunction(node.create):
await node.create()
else:
node.create()
@@ -245,7 +246,7 @@ class BaseManager:
"""
node = self.get_node(node_id)
if asyncio.iscoroutinefunction(node.close):
if inspect.iscoroutinefunction(node.close):
await node.close()
else:
node.close()
+1 -1
View File
@@ -37,7 +37,7 @@ class Nat(Cloud):
def __init__(self, name, node_id, project, manager, ports=None):
allowed_interfaces = Config.instance().settings.Server.allowed_interfaces
if allowed_interfaces:
if allowed_interfaces and isinstance(allowed_interfaces, str):
allowed_interfaces = allowed_interfaces.split(',')
if sys.platform.startswith("linux"):
nat_interface = Config.instance().settings.Server.default_nat_interface
+30 -26
View File
@@ -38,9 +38,9 @@ log = logging.getLogger(__name__)
# Be careful to keep it consistent
DOCKER_MINIMUM_API_VERSION = "1.25"
DOCKER_MINIMUM_VERSION = "1.13"
DOCKER_PREFERRED_API_VERSION = "1.30"
DOCKER_MINIMUM_API_VERSION = "1.40"
DOCKER_MINIMUM_VERSION = "19.03.8"
DOCKER_PREFERRED_API_VERSION = "1.44"
CHUNK_SIZE = 1024 * 8 # 8KB
@@ -115,7 +115,7 @@ class Docker(BaseManager):
dst_path = self.resources_path()
log.info(f"Installing Docker resources in '{dst_path}'")
from gns3server.controller import Controller
Controller.instance().install_resource_files(dst_path, "compute/docker/resources")
await Controller.instance().install_resource_files(dst_path, "compute/docker/resources")
await self.install_busybox(dst_path)
except OSError as e:
raise DockerError(f"Could not install Docker resources to {dst_path}: {e}")
@@ -125,22 +125,28 @@ class Docker(BaseManager):
if not self._connected:
try:
self._connected = True
version = await self.query("GET", "version")
docker_info = await self.query("GET", "version")
except (aiohttp.ClientError, FileNotFoundError):
self._connected = False
raise DockerError("Can't connect to docker daemon")
raise DockerError("Can't connect to Docker daemon")
docker_version = parse_version(version["ApiVersion"])
api_version = parse_version(docker_info['ApiVersion'])
version = docker_info["Version"]
if docker_version < parse_version(DOCKER_MINIMUM_API_VERSION):
raise DockerError(
f"Docker version is {version['Version']}. "
f"GNS3 requires a minimum version of {DOCKER_MINIMUM_VERSION}"
if api_version < parse_version(DOCKER_MINIMUM_API_VERSION):
raise DockerError(f"Docker version is {version}. "
f"GNS3 requires a minimum version of {DOCKER_MINIMUM_VERSION}"
)
preferred_api_version = parse_version(DOCKER_PREFERRED_API_VERSION)
if docker_version >= preferred_api_version:
if api_version >= preferred_api_version:
self._api_version = DOCKER_PREFERRED_API_VERSION
else:
# use the Min API version supported by the daemon
self._api_version = docker_info['MinAPIVersion']
log.warning("Using Docker client with the minimum API version {}".format(self._api_version))
log.info("Connected to Docker daemon version {} using API version {}".format(version, self._api_version))
def connector(self):
@@ -175,11 +181,10 @@ class Docker(BaseManager):
response = await self.http_query(method, path, data=data, params=params)
body = await response.read()
response.close()
if body and len(body):
if response.headers.get('CONTENT-TYPE') == 'application/json':
body = json.loads(body.decode("utf-8"))
else:
body = body.decode("utf-8")
if response.headers.get('CONTENT-TYPE') == 'application/json':
body = json.loads(body.decode("utf-8", errors="ignore"))
else:
body = body.decode("utf-8", errors="ignore")
log.debug("Query Docker %s %s params=%s data=%s Response: %s", method, path, params, data, body)
return body
@@ -189,7 +194,7 @@ class Docker(BaseManager):
:param method: HTTP method
:param path: Endpoint in API
:param data: Dictionnary with the body. Will be transformed to a JSON
:param data: Dictionary with the body. Will be transformed to a JSON
:param params: Parameters added as a query arg
:param timeout: Timeout
:returns: HTTP response
@@ -200,12 +205,11 @@ class Docker(BaseManager):
timeout = 60 * 60 * 24 * 31 # One month timeout
if path == 'version':
url = "http://docker/v1.24/" + path
url = "http://docker/" + path
else:
url = "http://docker/v" + DOCKER_MINIMUM_API_VERSION + "/" + path
await self._check_connection() # version is use by check connection
url = "http://docker/v" + self._api_version + "/" + path
try:
if path != "version": # version is use by check connection
await self._check_connection()
if self._session is None or self._session.closed:
connector = self.connector()
self._session = aiohttp.ClientSession(connector=connector)
@@ -267,12 +271,12 @@ class Docker(BaseManager):
pass
if progress_callback:
progress_callback(f"Pulling '{image}' from docker hub")
progress_callback(f"Pulling '{image}' from Docker repository")
try:
response = await self.http_query("POST", "images/create", params={"fromImage": image}, timeout=None)
except DockerError as e:
raise DockerError(
f"Could not pull the '{image}' image from Docker Hub, "
f"Could not pull the '{image}' image from Docker repository, "
f"please check your Internet connection (original error: {e})"
)
# The pull api will stream status via an HTTP JSON stream
@@ -281,10 +285,10 @@ class Docker(BaseManager):
try:
chunk = await response.content.read(CHUNK_SIZE)
except aiohttp.ServerDisconnectedError:
log.error(f"Disconnected from server while pulling Docker image '{image}' from docker hub")
log.error(f"Disconnected from server while pulling Docker image '{image}' from Docker repository")
break
except asyncio.TimeoutError:
log.error(f"Timeout while pulling Docker image '{image}' from docker hub")
log.error("Timeout while pulling Docker image '{}' from Docker repository".format(image))
break
if not chunk:
break
+13 -2
View File
@@ -195,6 +195,14 @@ class DockerVM(BaseNode):
def ethernet_adapters(self):
return self._ethernet_adapters
@property
def docker_name(self):
"""
Container name in Docker
"""
return "GNS3.{}.{}".format(self.name, self._project.id)
@property
def mac_address(self):
"""
@@ -437,7 +445,7 @@ class DockerVM(BaseNode):
try:
image_infos = await self._get_image_information()
except DockerHttp404Error:
log.info(f"Image '{self._image}' is missing, pulling it from Docker hub...")
log.info("Image '{}' is missing, pulling it from Docker repository...".format(self._image))
await self.pull_image(self._image)
image_infos = await self._get_image_information()
@@ -539,7 +547,8 @@ class DockerVM(BaseNode):
if extra_hosts:
params["Env"].append(f"GNS3_EXTRA_HOSTS={extra_hosts}")
result = await self.manager.query("POST", "containers/create", data=params)
# Support name in Doker: [a-zA-Z0-9][a-zA-Z0-9_.-]
result = await self.manager.query("POST", f"containers/create?name={self.docker_name}", data=params)
self._cid = result["Id"]
log.info(f"Docker container '{self._name}' [{self._id}] created")
if self._cpus > 0:
@@ -617,6 +626,7 @@ class DockerVM(BaseNode):
await self._clean_servers()
await self.manager.query("POST", f"containers/{self._cid}/start")
await asyncio.sleep(0.5) # give the Docker container some time to start
self._namespace = await self._get_namespace()
await self._start_ubridge(require_privileged_access=True)
@@ -744,6 +754,7 @@ class DockerVM(BaseNode):
"-rfbport", str(self.console),
"-AlwaysShared",
"-SecurityTypes", "None",
"-desktop", self.name,
":{}".format(self._display),
stdout=fd, stderr=subprocess.STDOUT)
@@ -3,7 +3,12 @@
# script for udhcpc
# Copyright (c) 2008 Natanael Copa <natanael.copa@gmail.com>
UDHCPC="/gns3/etc/udhcpc"
if [ -d /etc/network ]; then
UDHCPC="/etc/network/udhcpc"
else
UDHCPC="/gns3/etc/udhcpc"
fi
UDHCPC_CONF="$UDHCPC/udhcpc.conf"
RESOLV_CONF="/etc/resolv.conf"
+1 -1
View File
@@ -106,7 +106,7 @@ class ProjectManager:
if project_id is not None and project_id in self._projects:
return self._projects[project_id]
project = Project(name=name, project_id=project_id, path=path, variables=variables)
self._check_available_disk_space(project)
#self._check_available_disk_space(project) # FIXME: disabled for now
self._projects[project.id] = project
return project
+69 -28
View File
@@ -32,6 +32,7 @@ import subprocess
import time
import json
import shlex
import psutil
from gns3server.utils import parse_version
from gns3server.utils.asyncio import subprocess_check_output, cancellable_wait_run_in_executor
@@ -265,17 +266,10 @@ class QemuVM(BaseNode):
if qemu_bin == "qemu":
self._platform = "i386"
else:
self._platform = re.sub(r'^qemu-system-(\w+).*$', r'\1', qemu_bin, re.IGNORECASE)
try:
QemuPlatform(self._platform.split(".")[0])
except ValueError:
self._platform = re.sub(r'^qemu-system-(\w+).*$', r'\1', qemu_bin, flags=re.IGNORECASE)
if self._platform.split(".")[0] not in list(QemuPlatform):
raise QemuError(f"Platform {self._platform} is unknown")
log.info(
'QEMU VM "{name}" [{id}] has set the QEMU path to {qemu_path}'.format(
name=self._name, id=self._id, qemu_path=qemu_path
)
)
log.info(f'QEMU VM "{self._name}" [{self._name}] has set the QEMU path to {qemu_path}')
def _check_qemu_path(self, qemu_path):
@@ -1225,6 +1219,21 @@ class QemuVM(BaseNode):
except OSError as e:
raise QemuError(f"Could not start Telnet QEMU console {e}\n")
def _find_partition_for_path(self, path):
"""
Finds the disk partition for a given path.
"""
path = os.path.abspath(path)
partitions = psutil.disk_partitions()
# find the partition with the longest matching mount point
matching_partition = None
for partition in partitions:
if path.startswith(partition.mountpoint):
if matching_partition is None or len(partition.mountpoint) > len(matching_partition.mountpoint):
matching_partition = partition
return matching_partition
async def _termination_callback(self, returncode):
"""
Called when the process has stopped.
@@ -1236,9 +1245,19 @@ class QemuVM(BaseNode):
log.info("QEMU process has stopped, return code: %d", returncode)
await self.stop()
if returncode != 0:
qemu_stdout = self.read_stdout()
# additional permissions need to be configured for swtpm in AppArmor if the working dir
# is located on a different partition than the partition for the root directory
if "TPM result for CMD_INIT" in qemu_stdout:
partition = self._find_partition_for_path(self.project.path)
if partition and partition.mountpoint != "/":
qemu_stdout += "\nTPM error: the project directory is not on the same partition as the root directory which can be a problem when using AppArmor.\n" \
"Please try to execute the following commands on the server:\n\n" \
"echo 'owner {}/** rwk,' | sudo tee /etc/apparmor.d/local/usr.bin.swtpm > /dev/null\n" \
"sudo service apparmor restart".format(os.path.dirname(self.project.path))
self.project.emit(
"log.error",
{"message": f"QEMU process has stopped, return code: {returncode}\n{self.read_stdout()}"},
{"message": f"QEMU process has stopped, return code: {returncode}\n{qemu_stdout}"},
)
async def stop(self):
@@ -2287,19 +2306,42 @@ class QemuVM(BaseNode):
else:
raise QemuError(f"bios image '{self._bios_image}' is not accessible")
options.extend(["-bios", self._bios_image.replace(",", ",,")])
elif self._uefi:
# get the OVMF firmware from the images directory
ovmf_firmware_path = self.manager.get_abs_image_path("OVMF_CODE.fd")
old_ovmf_vars_path = os.path.join(self.working_dir, "OVMF_VARS.fd")
if os.path.exists(old_ovmf_vars_path):
# the node has its own UEFI variables store already, we must also use the old UEFI firmware
ovmf_firmware_path = self.manager.get_abs_image_path("OVMF_CODE.fd")
else:
system_ovmf_firmware_path = "/usr/share/OVMF/OVMF_CODE_4M.fd"
if os.path.exists(system_ovmf_firmware_path):
ovmf_firmware_path = system_ovmf_firmware_path
else:
# otherwise, get the UEFI firmware from the images directory
ovmf_firmware_path = self.manager.get_abs_image_path("OVMF_CODE_4M.fd")
log.info("Configuring UEFI boot mode using OVMF file: '{}'".format(ovmf_firmware_path))
options.extend(["-drive", "if=pflash,format=raw,readonly,file={}".format(ovmf_firmware_path)])
# try to use the UEFI variables store from the system first
system_ovmf_vars_path = "/usr/share/OVMF/OVMF_VARS_4M.fd"
if os.path.exists(system_ovmf_vars_path):
ovmf_vars_path = system_ovmf_vars_path
else:
# otherwise, get the UEFI variables store from the images directory
ovmf_vars_path = self.manager.get_abs_image_path("OVMF_VARS_4M.fd")
# the node should have its own copy of OVMF_VARS.fd (the UEFI variables store)
ovmf_vars_node_path = os.path.join(self.working_dir, "OVMF_VARS.fd")
if not os.path.exists(ovmf_vars_node_path):
try:
shutil.copyfile(self.manager.get_abs_image_path("OVMF_VARS.fd"), ovmf_vars_node_path)
except OSError as e:
raise QemuError("Cannot copy OVMF_VARS.fd file to the node working directory: {}".format(e))
if os.path.exists(old_ovmf_vars_path):
ovmf_vars_node_path = old_ovmf_vars_path
else:
ovmf_vars_node_path = os.path.join(self.working_dir, "OVMF_VARS_4M.fd")
if not os.path.exists(ovmf_vars_node_path):
try:
shutil.copyfile(ovmf_vars_path, ovmf_vars_node_path)
except OSError as e:
raise QemuError("Cannot copy OVMF_VARS_4M.fd file to the node working directory: {}".format(e))
options.extend(["-drive", "if=pflash,format=raw,file={}".format(ovmf_vars_node_path)])
return options
@@ -2396,16 +2438,13 @@ class QemuVM(BaseNode):
) # we do not want any user networking back-end if no adapter is connected.
# Each 32 PCI device we need to add a PCI bridge with max 9 bridges
pci_devices = 4 + len(self._ethernet_adapters) # 4 PCI devices are use by default by qemu
pci_bridges = math.floor(pci_devices / 32)
# Reserve 32 devices on root pci_bridge,
# since the number of devices used by templates may differ significantly
# and pci_bridges also consume IDs.
# Move network devices to their own bridge
pci_devices_reserved = 32
pci_bridges_created = 0
if pci_bridges >= 1:
if self._qemu_version and parse_version(self._qemu_version) < parse_version("2.4.0"):
raise QemuError(
"Qemu version 2.4 or later is required to run this VM with a large number of network adapters"
)
pci_device_id = 4 + pci_bridges # Bridge consume PCI ports
pci_device_id = pci_devices_reserved
for adapter_number, adapter in enumerate(self._ethernet_adapters):
mac = int_to_macaddress(macaddress_to_int(self._mac_address) + adapter_number)
@@ -2596,6 +2635,8 @@ class QemuVM(BaseNode):
"""
self._qemu_version = await self.manager.get_qemu_version(self.qemu_path)
if self._qemu_version and parse_version(self._qemu_version) < parse_version("2.4.0"):
raise QemuError("Qemu version 2.4 or later is required to run Qemu VMs")
vm_name = self._name.replace(",", ",,")
project_path = self.project.path.replace(",", ",,")
additional_options = self._options.strip()
+29 -25
View File
@@ -233,32 +233,36 @@ class VirtualBoxVM(BaseNode):
"""
Fix the VM uuid in the case of linked clone
"""
if os.path.exists(self._linked_vbox_file()):
try:
tree = ET.parse(self._linked_vbox_file())
except ET.ParseError:
raise VirtualBoxError(
"Cannot modify VirtualBox linked nodes file. "
"File {} is corrupted.".format(self._linked_vbox_file())
linked_vbox_file = self._linked_vbox_file()
if not os.path.exists(linked_vbox_file):
raise VirtualBoxError("Cannot find VirtualBox linked node file: {}".format(linked_vbox_file))
try:
tree = ET.parse(linked_vbox_file)
except ET.ParseError:
raise VirtualBoxError(f"Cannot modify VirtualBox linked node file. "
"File {linked_vbox_file} is corrupted.")
except OSError as e:
raise VirtualBoxError(f"Cannot modify VirtualBox linked nodes file '{self._linked_vbox_file()}': {e}")
machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
if machine is not None and machine.get("uuid") != "{" + self.id + "}":
for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
currentSnapshot = machine.get("currentSnapshot")
if currentSnapshot:
newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
shutil.move(
os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi"
)
except OSError as e:
raise VirtualBoxError(f"Cannot modify VirtualBox linked nodes file '{self._linked_vbox_file()}': {e}")
log.info(f"VirtualBox VM '{self.name}' [{self.id}] snapshot file moved from '{currentSnapshot}' to '{newSnapshot}'")
image.set("uuid", newSnapshot)
machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
if machine is not None and machine.get("uuid") != "{" + self.id + "}":
for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
currentSnapshot = machine.get("currentSnapshot")
if currentSnapshot:
newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
shutil.move(
os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi",
)
image.set("uuid", newSnapshot)
machine.set("uuid", "{" + self.id + "}")
tree.write(self._linked_vbox_file())
log.info(f"VirtualBox VM '{self.name}' [{self.id}] '{linked_vbox_file}' has been patched")
machine.set("uuid", "{" + self.id + "}")
tree.write(linked_vbox_file)
async def check_hw_virtualization(self):
"""
@@ -488,7 +492,7 @@ class VirtualBoxVM(BaseNode):
async def save_linked_hdds_info(self):
"""
Save linked cloned hard disks information.
Save linked cloned hard disk information.
:returns: disk table information
"""
+1 -2
View File
@@ -352,6 +352,7 @@ class VMwareVM(BaseNode):
vnet = self._get_vnet(adapter_number)
await self._ubridge_send(f"bridge create {vnet}")
vmnet_interface = os.path.basename(self._vmx_pairs[vnet])
block_host_traffic = self.manager.config.settings.VMware.block_host_traffic
if sys.platform.startswith("darwin"):
if parse_version(platform.mac_ver()[0]) >= parse_version("11.0.0"):
@@ -360,13 +361,11 @@ class VMwareVM(BaseNode):
vmnet_interface = self.manager.find_bridge_interface(vmnet_interface)
if not vmnet_interface:
raise VMwareError(f"Could not find bridge interface linked with {vmnet_interface}")
block_host_traffic = self.manager.config.get_section_config("VMware").getboolean("block_host_traffic", False)
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
else:
# special case on macOS, we cannot bind VMnet interfaces using the libpcap
await self._ubridge_send('bridge add_nio_fusion_vmnet {name} "{interface}"'.format(name=vnet, interface=vmnet_interface))
else:
block_host_traffic = self.manager.config.VMware.block_host_traffic
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
if isinstance(nio, NIOUDP):
@@ -13,8 +13,7 @@ logging console discriminator EXCESS
!
no ip icmp rate-limit unreachable
!
! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work
no ip cef
ip cef
no ip domain lookup
!
!
@@ -12,8 +12,7 @@ no ip icmp rate-limit unreachable
!
!
!
! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work
no ip cef
ip cef
no ip domain lookup
!
!
+42 -18
View File
@@ -28,10 +28,10 @@ try:
except ImportError:
from importlib import resources as importlib_resources
from ..config import Config
from ..utils import parse_version, md5sum
from ..utils.images import default_images_directory
from ..utils.asyncio import wait_run_in_executor
from .project import Project
from .appliance import Appliance
@@ -43,6 +43,7 @@ from .topology import load_topology
from .gns3vm import GNS3VM
from .gns3vm.gns3_vm_error import GNS3VMError
from .controller_error import ControllerError, ControllerNotFoundError
from ..db.tasks import update_disk_checksums
from ..version import __version__
import logging
@@ -72,8 +73,12 @@ class Controller:
async def start(self, computes=None):
log.info("Controller is starting")
self._install_base_configs()
self._install_builtin_disks()
await self._install_base_configs()
await self._install_custom_symbols()
installed_disks = await self._install_builtin_disks()
if installed_disks:
await update_disk_checksums(installed_disks)
server_config = Config.instance().settings.Server
Config.instance().listen_for_config_changes(self._update_config)
name = server_config.name
@@ -86,7 +91,7 @@ class Controller:
if host == "0.0.0.0":
host = "127.0.0.1"
self._load_controller_vars()
await self._load_controller_vars()
if server_config.enable_ssl:
self._ssl_context = self._create_ssl_context(server_config)
@@ -190,7 +195,7 @@ class Controller:
async def reload(self):
log.info("Controller is reloading")
self._load_controller_vars()
await self._load_controller_vars()
# remove all projects deleted from disk.
for project in self._projects.copy().values():
@@ -234,7 +239,7 @@ class Controller:
except OSError as e:
log.error(f"Cannot write controller vars file '{self._vars_file}': {e}")
def _load_controller_vars(self):
async def _load_controller_vars(self):
"""
Reload the controller vars from disk
"""
@@ -274,9 +279,9 @@ class Controller:
builtin_appliances_path = self._appliance_manager.builtin_appliances_path()
if not previous_version or \
parse_version(__version__.split("+")[0]) > parse_version(previous_version.split("+")[0]):
self._appliance_manager.install_builtin_appliances()
await self._appliance_manager.install_builtin_appliances()
elif not os.listdir(builtin_appliances_path):
self._appliance_manager.install_builtin_appliances()
await self._appliance_manager.install_builtin_appliances()
else:
log.info(f"Built-in appliances are installed in '{builtin_appliances_path}'")
@@ -307,18 +312,21 @@ class Controller:
@staticmethod
def install_resource_files(dst_path, resource_name, upgrade_resources=True):
async def install_resource_files(dst_path, resource_name, upgrade_resources=True):
"""
Install files from resources to user's file system
"""
def should_copy(src, dst, upgrade_resources):
installed_resources = []
async def should_copy(src, dst, upgrade_resources):
if not os.path.exists(dst):
return True
if upgrade_resources is False:
return False
# copy the resource if it is different
return md5sum(src) != md5sum(dst)
src_md5 = await wait_run_in_executor(md5sum, src)
dst_md5 = await wait_run_in_executor(md5sum, dst)
return src_md5 != dst_md5
if hasattr(sys, "frozen") and sys.platform.startswith("win"):
resource_path = os.path.normpath(os.path.join(os.path.dirname(sys.executable), resource_name))
@@ -328,14 +336,16 @@ class Controller:
else:
for entry in importlib_resources.files('gns3server').joinpath(resource_name).iterdir():
full_path = os.path.join(dst_path, entry.name)
if entry.is_file() and should_copy(str(entry), full_path, upgrade_resources):
if entry.is_file() and await should_copy(str(entry), full_path, upgrade_resources):
log.debug(f'Installing {resource_name} resource file "{entry.name}" to "{full_path}"')
shutil.copy(str(entry), os.path.join(dst_path, entry.name))
shutil.copy(str(entry), os.path.join(full_path))
installed_resources.append(full_path)
elif entry.is_dir():
os.makedirs(full_path, exist_ok=True)
Controller.install_resource_files(full_path, os.path.join(resource_name, entry.name))
await Controller.install_resource_files(full_path, os.path.join(resource_name, entry.name))
return installed_resources
def _install_base_configs(self):
async def _install_base_configs(self):
"""
At startup we copy base configs to the user location to allow
them to customize it
@@ -344,11 +354,12 @@ class Controller:
dst_path = self.configs_path()
log.info(f"Installing base configs in '{dst_path}'")
try:
Controller.install_resource_files(dst_path, "configs", upgrade_resources=False)
# do not overwrite base configs because they may have been customized by the user
await Controller.install_resource_files(dst_path, "configs", upgrade_resources=False)
except OSError as e:
log.error(f"Could not install base config files to {dst_path}: {e}")
def _install_builtin_disks(self):
async def _install_builtin_disks(self):
"""
At startup we copy built-in Qemu disks to the user location to allow
them to use with appliances
@@ -357,10 +368,23 @@ class Controller:
dst_path = self.disks_path()
log.info(f"Installing built-in disks in '{dst_path}'")
try:
Controller.install_resource_files(dst_path, "disks", upgrade_resources=False)
return await Controller.install_resource_files(dst_path, "disks")
except OSError as e:
log.error(f"Could not install disk files to {dst_path}: {e}")
async def _install_custom_symbols(self):
"""
At startup we copy custom symbols to the user location to allow
them to use with appliances
"""
dst_path = self.symbols.symbols_path()
log.info(f"Installing custom symbols in '{dst_path}'")
try:
return await Controller.install_resource_files(dst_path, "custom_symbols", upgrade_resources=False)
except OSError as e:
log.error(f"Could not install custom symbols to {dst_path}: {e}")
def images_path(self):
"""
Get the image storage directory
+2 -2
View File
@@ -110,7 +110,7 @@ class ApplianceManager:
os.makedirs(appliances_dir, exist_ok=True)
return appliances_dir
def install_builtin_appliances(self):
async def install_builtin_appliances(self):
"""
At startup we copy the built-in appliances files.
"""
@@ -119,7 +119,7 @@ class ApplianceManager:
log.info(f"Installing built-in appliances in '{dst_path}'")
from . import Controller
try:
Controller.instance().install_resource_files(dst_path, "appliances")
await Controller.instance().install_resource_files(dst_path, "appliances")
except OSError as e:
log.error(f"Could not install built-in appliance files to {dst_path}: {e}")
+12 -6
View File
@@ -18,14 +18,19 @@
import ipaddress
import aiohttp
import asyncio
import async_timeout
import socket
import json
import sys
import io
from fastapi import HTTPException
from aiohttp import web
if sys.version_info >= (3, 11):
from asyncio import timeout as asynctimeout
else:
from async_timeout import timeout as asynctimeout
from ..utils import parse_version
from ..utils.asyncio import locking
from ..controller.controller_error import (
@@ -453,10 +458,11 @@ class Compute:
# FIXME: slow down number of compute events
self._controller.notification.controller_emit("compute.updated", self.asdict())
else:
if action == "log.error":
log.error(event.pop("message"))
await self._controller.notification.dispatch(
action, event, project_id=project_id, compute_id=self.id
action,
event,
project_id=project_id,
compute_id=self.id
)
else:
if response.type == aiohttp.WSMsgType.CLOSE:
@@ -502,8 +508,8 @@ class Compute:
""" Returns URL for specific path at Compute"""
return self._getUrl(path)
async def _run_http_query(self, method, path, data=None, timeout=20, raw=False):
async with async_timeout.timeout(delay=timeout):
async def _run_http_query(self, method, path, data=None, timeout=120, raw=False):
async with asynctimeout(delay=timeout):
url = self._getUrl(path)
headers = {"content-type": "application/json"}
chunked = None
@@ -249,6 +249,7 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
return True
return False
async def list(self):
"""
List all VirtualBox VMs
@@ -269,8 +270,8 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
# get a NAT interface number
nat_interface_number = await self._look_for_interface("nat")
if nat_interface_number < 0:
raise GNS3VMError(f'VM "{self.vmname}" must have a NAT interface configured in order to start')
if nat_interface_number < 0 and await self._look_for_interface("natnetwork") < 0:
raise GNS3VMError(f'VM "{self.vmname}" must have a NAT interface or NAT Network configured in order to start')
if sys.platform.startswith("darwin") and parse_version(self._system_properties["API version"]) >= parse_version("7_0"):
# VirtualBox 7.0+ on macOS requires a host-only network interface
@@ -339,42 +340,68 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
elif vm_state == "paused":
args = [self._vmname, "resume"]
await self._execute("controlvm", args)
ip_address = "127.0.0.1"
try:
# get a random port on localhost
with socket.socket() as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((ip_address, 0))
api_port = s.getsockname()[1]
except OSError as e:
raise GNS3VMError(f"Error while getting random port: {e}")
if await self._check_vbox_port_forwarding():
# delete the GNS3VM NAT port forwarding rule if it exists
log.info(f"Removing GNS3VM NAT port forwarding rule from interface {nat_interface_number}")
await self._execute("controlvm", [self._vmname, f"natpf{nat_interface_number}", "delete", "GNS3VM"])
log.info("Retrieving IP address from GNS3 VM...")
ip = await self._get_ip_from_guest_property()
if ip:
self.ip_address = ip
else:
# if we can't get the IP address from the guest property, we try to get it from the GNS3 server (a NAT interface is required)
if nat_interface_number < 0:
raise GNS3VMError("Could not find guest IP address for {}".format(self.vmname))
log.warning("Could not find IP address from guest property, trying to get it from GNS3 server")
ip_address = "127.0.0.1"
try:
# get a random port on localhost
with socket.socket() as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((ip_address, 0))
api_port = s.getsockname()[1]
except OSError as e:
raise GNS3VMError("Error while getting random port: {}".format(e))
# add a GNS3VM NAT port forwarding rule to redirect 127.0.0.1 with random port to the port in the VM
log.info(f"Adding GNS3VM NAT port forwarding rule with port {api_port} to interface {nat_interface_number}")
await self._execute(
"controlvm",
[self._vmname, f"natpf{nat_interface_number}", f"GNS3VM,tcp,{ip_address},{api_port},,{self.port}"],
)
if await self._check_vbox_port_forwarding():
# delete the GNS3VM NAT port forwarding rule if it exists
log.info("Removing GNS3VM NAT port forwarding rule from interface {}".format(nat_interface_number))
await self._execute("controlvm", [self._vmname, "natpf{}".format(nat_interface_number), "delete", "GNS3VM"])
self.ip_address = await self._get_ip(interface_number, api_port)
log.info("GNS3 VM has been started with IP {}".format(self.ip_address))
# add a GNS3VM NAT port forwarding rule to redirect 127.0.0.1 with random port to the port in the VM
log.info("Adding GNS3VM NAT port forwarding rule with port {} to interface {}".format(api_port, nat_interface_number))
await self._execute("controlvm", [self._vmname, "natpf{}".format(nat_interface_number),
"GNS3VM,tcp,{},{},,{}".format(ip_address, api_port, self.port)])
self.ip_address = await self._get_ip_from_server(interface_number, api_port)
log.info("GNS3 VM has been started with IP '{}'".format(self.ip_address))
self.running = True
async def _get_ip(self, hostonly_interface_number, api_port):
async def _get_ip_from_guest_property(self):
"""
Get the IP from VirtualBox.
Get the IP from VirtualBox by retrieving the guest property (Guest Additions must be installed).
"""
remaining_try = 180 # try for 3 minutes
while remaining_try > 0:
result = await self._execute("guestproperty", ["get", self._vmname, "/VirtualBox/GuestInfo/Net/0/V4/IP"])
for info in result.splitlines():
if ':' in info:
name, value = info.split(':', 1)
if name == "Value":
return value.strip()
remaining_try -= 1
await asyncio.sleep(1)
return None
async def _get_ip_from_server(self, hostonly_interface_number, api_port):
"""
Get the IP from VirtualBox by sending a request to the GNS3 server.
Due to VirtualBox limitation the only way is to send request each
second to a GNS3 endpoint in order to get the list of the interfaces and
their IP and after that match it with VirtualBox host only.
"""
remaining_try = 300
remaining_try = 180 # try for 3 minutes
while remaining_try > 0:
try:
async with HTTPClient.get(f"http://127.0.0.1:{api_port}/v3/compute/network/interfaces") as resp:
+1 -1
View File
@@ -58,7 +58,7 @@ class CrashReport:
Report crash to a third party service
"""
DSN = "https://8374a6208714ff37e18725c21a04b8d1@o19455.ingest.us.sentry.io/38482"
DSN = "https://1c0ae79fd51b77c674718c6942337300@o19455.ingest.us.sentry.io/38482"
_instance = None
def __init__(self):
+1
View File
@@ -0,0 +1 @@
<svg id="f6fe4215-7336-420b-bd07-06692844737a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 67.6 65.59"><title>vrouter-logo-generic</title><circle cx="34" cy="32.75" r="19.09" style="fill:#3d4859;opacity:0.8999999761581421;isolation:isolate"/><circle cx="34.04" cy="32.79" r="11.18" style="fill:#5e7ce2;opacity:0.8999999761581421;isolation:isolate"/><path d="M44.61,7.88l20.74-5.6c1.22-.33,2,.41,1.7,1.65L62.21,24.86c-.47,2-3.1,3.65-4.17,2.62l-4.92-4.76-7.84,8.13c-1.07,1.11-2.48,1.49-3.15.85l-3.62-3.49c-.66-.64-.33-2.07.73-3.18l7.84-8.13-4.93-4.76C41.07,11.1,42.62,8.42,44.61,7.88Z" transform="translate(-1.16 -2.2)" style="fill:#0aaded;opacity:0.8999999761581421;isolation:isolate"/><path d="M26.06,62.11,5.32,67.72c-1.21.33-2-.42-1.7-1.65L8.47,45.14c.44-2,3.08-3.65,4.15-2.62l4.93,4.76,7.84-8.13c1.07-1.11,2.49-1.49,3.15-.85l3.63,3.49c.67.64.33,2.07-.72,3.18L23.61,53.1l4.91,4.76C29.6,58.9,28.05,61.58,26.06,62.11Z" transform="translate(-1.16 -2.2)" style="fill:#5e7ce2;opacity:0.8999999761581421;isolation:isolate"/><path d="M25.29,8.71l5.6,20.75c.33,1.21-.41,2-1.64,1.69L8.31,26.31c-2-.47-3.65-3.1-2.61-4.17l4.75-4.91L2.32,9.38C1.21,8.31.83,6.9,1.47,6.24L5,2.6c.64-.66,2.07-.33,3.18.73l8.13,7.86L21,6.25C22.07,5.17,24.75,6.72,25.29,8.71Z" transform="translate(-1.16 -2.2)" style="fill:#5e7ce2;opacity:0.8999999761581421;isolation:isolate"/><path d="M44.64,61.15,39,40.4c-.33-1.21.42-2,1.65-1.7l20.93,4.84c2,.46,3.65,3.09,2.62,4.16l-4.76,4.94,8.13,7.84c1.11,1.06,1.49,2.48.85,3.14L65,67.24c-.64.67-2.07.34-3.18-.72l-8.13-7.84L48.9,63.61C47.85,64.69,45.17,63.14,44.64,61.15Z" transform="translate(-1.16 -2.2)" style="fill:#0aaded;opacity:0.8999999761581421;isolation:isolate"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<svg height="59.253815" id="Andysvg" version="1.0" width="65.414536" x="0.00000000" y="0.00000000" xmlns="http://www.w3.org/2000/svg" xmlns:bx="https://boxy-svg.com">
<defs id="defs3">
<linearGradient id="linearGradient891" x1="92.437965" x2="27.674332" y1="-3.9104078" y2="91.076988" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linearGradient905" x1="-77.726181" x2="95.64444" y1="208.43991" y2="11.699047" gradientTransform="matrix(0.7314635,0,0,0.5932693,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
</linearGradient>
<radialGradient cx="60.004654" cy="56.485935" id="radialGradient1132" r="68.589226" gradientTransform="matrix(0.8184166,0,0,0.530237,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
<stop id="stop1134" offset="0" style="stop-color:#8bb7df;stop-opacity:1.0000000;"/>
<stop id="stop1136" offset="0.7621" style="stop-color:#2a6092;stop-opacity:1.0000000;"/>
<stop id="stop1135" offset="1" style="stop-color:#375e82;stop-opacity:1.0000000;"/>
</radialGradient>
<linearGradient id="linearGradient1140" x1="45.685757" x2="41.96706" y1="110.4447" y2="232.24953" gradientTransform="matrix(1.2743811,0,0,0.3405213,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linearGradient1144" x1="31.449743" x2="31.617281" y1="203.49899" y2="251.21892" gradientTransform="matrix(1.4044089,0,0,0.3089952,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linearGradient1146" x1="39.810947" x2="17.87653" y1="90.197021" y2="113.71949" gradientTransform="matrix(0.8811179,0,0,0.4925045,-9.8827694,-14.589616)" gradientUnits="userSpaceOnUse">
<stop id="stop893" offset="0" style="stop-color:#ffffff;stop-opacity:0.00000000;"/>
<stop id="stop894" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linearGradient1156" x1="25.220816" x2="25.220816" y1="178.48862" y2="234.26866" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linearGradient1157" x1="51.46093" x2="-16.224497" y1="269.85831" y2="176.28694" gradientTransform="matrix(1.6156202,0,0,0.2685999,-9.8827678,-14.589608)" gradientUnits="userSpaceOnUse">
<stop id="stop889" offset="0" style="stop-color:#626262;stop-opacity:1.0000000;"/>
<stop id="stop890" offset="1" style="stop-color:#fff;stop-opacity:1;"/>
</linearGradient>
</defs>
<rect height="5.4088969" id="rect1155" style="fill: url(#linearGradient1156); fill-opacity: 1; fill-rule: evenodd; stroke: url(#linearGradient1157); stroke-width: 0.953444pt;" width="38.405891" x="12.350429" y="36.575089"/>
<path d="M 0.19287398,54.885213 C -0.67386281,56.46268 1.5579198,59.253939 3.3933636,59.253939 L 62.069027,59.253939 C 63.628857,59.253939 65.976201,57.281205 65.269522,55.925378 L 58.655165,43.235277 C 58.145696,42.257819 57.005954,41.779036 55.881408,41.779036 L 8.9408812,41.779036 C 8.0135624,41.779036 7.0317541,42.438291 6.5938539,43.235277 L 0.19287398,54.885213 z " id="path1139" style="fill: url(#linearGradient1140); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1.44735pt;"/>
<rect height="39.110481" id="rect1137" rx="3.6272225" ry="3.536587" style="fill: url(#linearGradient905); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1.62827;" width="48.220726" x="7.4732022" y="-0.010164791"/>
<rect height="24.74659" id="rect1131" style="fill: url(#radialGradient1132); fill-opacity: 1; fill-rule: evenodd; stroke: url(#linearGradient891); stroke-width: 0.965037pt;" width="38.813015" x="12.390426" y="6.027596"/>
<path d="M 8.5906358,19.782157 L 8.3772707,34.032521 C 8.3432557,36.304242 9.6712558,37.75887 12.004493,37.777143 L 38.568566,37.985175 L 41.128957,32.160207 L 11.471076,31.952177 L 11.257713,19.678141 L 8.5906358,19.782157 z " id="path1145" style="fill: url(#linearGradient1146); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1pt;"/>
<path d="M 2.7205883,54.675124 C 2.1113822,55.866786 2.9089235,57.975349 4.9701318,57.975349 L 60.179981,57.975349 C 61.276346,57.975349 62.926231,56.48511 62.429524,55.460899 L 57.78047,45.874547 C 57.422369,45.136152 56.621274,44.774474 55.830865,44.774474 L 8.8693353,44.774468 C 8.2175462,44.774468 7.5274604,45.272486 7.2196723,45.874547 L 2.7205883,54.675124 z " id="path1143" style="fill: url(#linearGradient1144); fill-opacity: 1; fill-rule: evenodd; stroke-width: 1pt;"/>
<rect x="12.664" y="6.294" width="38.092" height="24.48" style="fill: rgb(255, 255, 255);"/>
<path d="M 28.718 20.949 L 28.718 18.69 L 27.09 20.318 C 27.266 20.44 27.431 20.541 27.587 20.622 C 27.741 20.704 27.887 20.768 28.023 20.815 C 28.159 20.864 28.284 20.896 28.399 20.918 C 28.516 20.939 28.622 20.948 28.718 20.949 M 37.035 20.762 C 37.038 20.764 37.054 20.778 37.082 20.796 C 37.113 20.815 37.155 20.839 37.212 20.862 C 37.269 20.886 37.339 20.91 37.426 20.927 C 37.512 20.945 37.613 20.956 37.728 20.956 C 37.825 20.956 37.931 20.948 38.048 20.927 C 38.164 20.907 38.292 20.875 38.429 20.826 C 38.566 20.779 38.713 20.716 38.871 20.633 C 39.029 20.551 39.196 20.449 39.374 20.325 L 38.14 19.116 L 34.048 15.009 L 32.253 16.805 L 29.832 14.307 L 23.753 20.317 C 23.931 20.442 24.098 20.542 24.256 20.624 C 24.413 20.707 24.561 20.771 24.697 20.818 C 24.835 20.866 24.961 20.899 25.078 20.919 C 25.195 20.939 25.301 20.948 25.398 20.948 C 25.513 20.948 25.614 20.936 25.7 20.919 C 25.785 20.901 25.856 20.878 25.914 20.855 C 25.97 20.831 26.013 20.806 26.043 20.788 C 26.072 20.769 26.088 20.755 26.091 20.753 L 28.835 18.009 L 29.816 17.068 L 32.534 19.786 L 33.483 20.762 C 33.485 20.764 33.501 20.778 33.53 20.796 C 33.56 20.815 33.602 20.839 33.66 20.862 C 33.716 20.886 33.788 20.91 33.873 20.927 C 33.959 20.945 34.06 20.956 34.176 20.956 C 34.273 20.956 34.379 20.948 34.496 20.927 C 34.613 20.907 34.74 20.875 34.877 20.826 C 35.014 20.779 35.161 20.716 35.319 20.633 C 35.476 20.551 35.644 20.449 35.823 20.325 L 33.642 18.19 L 34.047 17.785 L 35.934 19.672 L 37.035 20.762 M 37.011 9.382 L 42.371 18.668 L 37.011 27.955 L 26.288 27.955 L 20.926 18.668 L 26.288 9.382 L 37.011 9.382 Z" style="fill: rgb(13, 89, 127); fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path58" bx:origin="0 0"/>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<svg id="svg1998" width="51.358818" height="47.630692" version="1.0" xmlns="http://www.w3.org/2000/svg">
<defs id="defs2001">
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
</marker>
<linearGradient id="linearGradient9199" gradientUnits="userSpaceOnUse" gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
<stop style="stop-opacity: 1; stop-color: rgb(239, 239, 239);" offset="0" id="stop8333"/>
<stop style="stop-opacity: 1; stop-color: rgb(255, 255, 255);" offset="1" id="stop8335"/>
</linearGradient>
</defs>
<path id="path11907" d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
<path id="path11020" d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
<path id="path2037" d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(239, 239, 239);"/>
<path id="path2041" d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552" style="fill:url(#linearGradient9199);fill-opacity:1;stroke:none;stroke-width:0.001"/>
<path id="path2045" d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(223, 223, 223);"/>
<path class="st0" d="M 40.254 38.435 L 24.509 13.686 C 23.584 12.049 20.925 12.049 19.901 13.789 L 4.254 38.435 L 9.369 38.435 L 14.073 30.969 L 24.099 30.969 L 26.753 26.67 L 16.731 26.67 L 22.255 18.082 L 35.039 38.435 L 40.254 38.435 Z" style="fill: rgb(24, 61, 100);"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 44.52">
<defs>
<style>
.cls-1 {
fill: none;
}
.cls-2 {
clip-path: url(#clippath);
}
.cls-3 {
fill: #fff;
}
.cls-4 {
fill: #abbbed;
}
.cls-5 {
fill: #96aae9;
}
.cls-6 {
fill: #7989bb;
}
</style>
<clipPath id="clippath">
<rect class="cls-1" x=".1" y="8.18" width="64.89" height="27.34"/>
</clipPath>
</defs>
<rect x="1.34" y="23.21" width="49.53" height="13.54"/>
<polygon points="50.88 23.21 50.88 36.75 66 23.21 66 9.64 50.88 23.21"/>
<rect class="cls-1" x=".1" y="8.18" width="64.89" height="27.34"/>
<rect class="cls-1" x=".1" y="8.18" width="64.89" height="27.34"/>
<rect class="cls-5" x=".22" y="21.87" width="49.53" height="13.54"/>
<polygon class="cls-4" points="15.34 8.3 .22 21.87 49.75 21.87 64.87 8.3 15.34 8.3"/>
<polygon class="cls-6" points="49.75 21.87 49.75 35.4 64.87 21.87 64.87 8.3 49.75 21.87"/>
<polygon class="cls-3" points="33.17 12.87 25.08 14.56 31.96 17.27 40.04 15.58 33.17 12.87"/>
<polygon class="cls-3" points="24.77 15.66 28.21 17.02 14.88 19.81 16.6 20.49 9.1 19.98 9.73 17.78 11.45 18.46 24.77 15.66"/>
<polygon class="cls-3" points="36.9 13.12 40.33 14.48 53.69 11.68 55.41 12.35 56 10.15 48.54 9.64 50.26 10.32 36.9 13.12"/>
<polygon class="cls-3" points="35.71 17.52 39.75 16.68 44.9 18.71 46.92 18.29 46.33 20.49 38.83 19.98 40.86 19.56 35.71 17.52"/>
<polygon class="cls-3" points="25.39 13.46 29.44 12.61 24.28 10.58 26.29 10.15 18.83 9.64 18.2 11.85 20.24 11.42 25.39 13.46"/>
<g class="cls-2">
<path class="cls-3" d="m25.84,29.93c0-.2-.07-.35-.21-.46-.14-.11-.39-.22-.74-.34s-.64-.23-.86-.34c-.73-.36-1.09-.85-1.09-1.47,0-.31.09-.58.27-.82.18-.24.44-.42.77-.56s.7-.2,1.12-.2.77.07,1.09.21c.32.15.57.35.74.62.18.26.26.57.26.91h-1.35c0-.23-.07-.41-.21-.53-.14-.13-.33-.19-.57-.19s-.43.05-.57.16c-.14.1-.21.24-.21.41,0,.15.08.27.23.39.16.12.42.24.81.36.39.12.71.26.95.4.61.35.91.83.91,1.45,0,.49-.18.88-.56,1.15-.37.28-.88.42-1.52.42-.46,0-.87-.08-1.24-.25s-.65-.39-.83-.67c-.19-.28-.28-.61-.28-.98h1.35c0,.3.08.52.23.67.16.14.41.21.76.21.22,0,.4-.05.53-.15.13-.1.2-.23.2-.41"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

+498
View File
@@ -0,0 +1,498 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.92.1 r15371"
width="78"
height="60"
version="1.0"
sodipodi:docname="Cisco-FMCv.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<title
id="title3303">ASA</title>
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:title>ASA</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 23.815346 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="51.358818 : 23.815346 : 1"
inkscape:persp3d-origin="25.679409 : 15.876897 : 1"
id="perspective43" />
<linearGradient
inkscape:collect="always"
id="linearGradient10123">
<stop
style="stop-color:#e4405c;stop-opacity:1;"
offset="0"
id="stop10125" />
<stop
style="stop-color:#e4405c;stop-opacity:0;"
offset="1"
id="stop10127" />
</linearGradient>
<linearGradient
id="linearGradient8331">
<stop
style="stop-color:#6e8caa;stop-opacity:1;"
offset="0"
id="stop8333" />
<stop
style="stop-color:#dde3ef;stop-opacity:1;"
offset="1"
id="stop8335" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6603">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6605" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6607" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6587">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6589" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6591" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6587"
id="linearGradient6593"
x1="3.95626"
y1="0.64267641"
x2="-1.2664427"
y2="0.62730032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-0.00394248,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6603"
id="linearGradient6609"
x1="2.2801981"
y1="1.4519272"
x2="-0.41311559"
y2="1.4649135"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-0.00394248,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10123"
id="linearGradient10129"
x1="1.3990936"
y1="1.4711363"
x2="0.49966058"
y2="0.56367606"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.117962,0,0,1.035008,-0.040973,-0.00678868)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient6875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(25.476818,0,0,24.653619,16.134224,-3.6500723)"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999" />
<inkscape:perspective
id="perspective418"
inkscape:persp3d-origin="283.46457 : 188.97638 : 1"
inkscape:vp_z="566.92914 : 283.46457 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 283.46457 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3145"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient6875-3"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(36.770425,0,0,24.653619,-12.632753,-3.5809148)"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient6875-35"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(25.476818,0,0,24.653619,-8.67999,-3.71127)"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999" />
</defs>
<sodipodi:namedview
inkscape:window-height="1031"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="11.313708"
inkscape:cx="68.617052"
inkscape:cy="48.72766"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:current-layer="svg1998"
showgrid="false"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<path
id="path11907"
d="m 3.5551186,56.156296 v 2.959818 H 70.766282 V 56.156296 H 3.5551186"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.23817813"
inkscape:connector-curvature="0" />
<path
id="path11020"
d="M 70.872922,8.6798666 77.855353,2.4891617 77.840347,53.678671 70.766282,59.116114 70.872856,8.6798666"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.99648201"
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0" />
<path
id="path2037"
d="M 0.22635933,6.2224304 V 55.734506 H 70.747763 V 6.2224304 H 0.22635933"
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:1.38291967"
inkscape:connector-curvature="0" />
<path
id="path2041"
d="m 25.05111,6.5318764 5.808715,-5.251224 h 45.883749 l -5.859667,5.251224 H 25.05111"
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.99648201"
inkscape:connector-curvature="0" />
<path
id="path2045"
d="M 70.747763,6.2224304 76.53739,1.2372012 V 42.663756 l -5.789627,4.985229 V 6.2224304"
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:1.01408982"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99412811"
d="M 63.650138,-114.23927 H 93.96577 v -2.43552 l 6.51758,4.87105 -6.51758,5.27408 v -2.43553 H 63.650138 v -5.27408"
id="path39" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff;stroke-width:0.99412817;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 53.221305,-111.80373 H 65.932861"
id="path61" />
<path
inkscape:connector-curvature="0"
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99063075"
d="M 40.583264,56.043952 H 25.452717 v -5.604136 h 15.130547 v 5.604136"
id="path99" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#e1e1e1;stroke-width:0.44807994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 40.583264,56.043952 H 25.599726"
id="path101" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="m 25.689994,50.439816 h 14.89327 v 5.604136"
id="path103" />
<path
inkscape:connector-curvature="0"
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 70.883907,56.043952 H 55.737538 v -5.604136 h 15.146369 v 5.604136"
id="path105" />
<path
inkscape:connector-curvature="0"
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 63.688395,56.043952 H 48.526214 v -5.604136 h 15.162181 v 5.604136"
id="path107" />
<path
inkscape:connector-curvature="0"
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 48.526214,56.043952 H 33.387752 v -5.604136 h 15.138462 v 5.604136"
id="path109" />
<path
inkscape:connector-curvature="0"
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.46981236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="m 73.772792,48.48091 2.530987,-2.488522 v -6.191459 l -2.530987,2.474883 v 6.205098"
id="path111" />
<path
inkscape:connector-curvature="0"
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="m 73.772792,53.812465 2.530987,-1.971233 v -5.610305 l -2.530987,1.965074 v 5.616464"
id="path125" />
<path
inkscape:connector-curvature="0"
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="m 70.883907,56.043952 2.888885,-2.231487 v -5.616464 l -2.888885,2.243815 v 5.604136"
id="path127" />
<path
inkscape:connector-curvature="0"
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 55.737538,50.439816 H 40.583264 v -5.610295 h 15.154274 v 5.610295"
id="path133" />
<path
inkscape:connector-curvature="0"
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99063075"
d="M 40.583264,50.439816 H 25.452717 v -5.610305 h 15.130547 v 5.610305"
id="path135" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#e1e1e1;stroke-width:0.44942763;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 40.583264,50.439816 H 25.509457"
id="path137" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#e1e1e1;stroke-width:0.44878906;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="m 25.552266,44.829521 h 15.030998 v 5.610295"
id="path139" />
<path
inkscape:connector-curvature="0"
style="fill:#ff545c;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44672814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="M 70.883907,50.439816 H 55.737538 v -5.610295 h 15.146369 v 5.610295"
id="path141" />
<path
inkscape:connector-curvature="0"
style="fill:#ff2833;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.45488474;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
d="m 70.883907,50.439816 2.888885,-2.326496 v -5.810658 l -2.888885,2.320122 v 5.817032"
id="path145" />
<path
id="path2041-9"
d="M 0.23689523,6.4706772 6.0456103,1.2194547 H 51.92936 L 46.069691,6.4706772 H 0.23689523"
style="fill:url(#linearGradient6875-35);fill-opacity:1;stroke:none;stroke-width:0.99648201"
inkscape:connector-curvature="0" />
<path
id="path2041-5"
d="M 0.23689523,6.6010339 8.6205533,1.3498071 H 74.84408 L 66.386884,6.6010339 H 0.23689523"
style="fill:url(#linearGradient6875-3);fill-opacity:1;stroke:none;stroke-width:1.19714344"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.43419823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 25.4631,6.6345316 25.34143,56.257182 25.4631,6.6345316"
id="path987"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.45158434;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 32.697436,1.4761415 25.481582,6.6155667 32.697436,1.4761415"
id="path987-2"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.44617558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 25.397623,28.812118 0.47800664,28.706997 25.397623,28.812118"
id="path987-7"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:22.19543457px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="3.4368773"
y="27.197458"
id="text1030"
transform="scale(1.1150382,0.89683024)"><tspan
sodipodi:role="line"
id="tspan1028"
x="3.4368773"
y="27.197458"
style="fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">X</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:cmex10;-inkscape-font-specification:cmex10;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-20.137201"
y="37.709763"
id="text1038"><tspan
sodipodi:role="line"
id="tspan1036"
x="-20.137201"
y="50.984001" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.4306345px;line-height:125%;font-family:cmex10;-inkscape-font-specification:cmex10;letter-spacing:0px;word-spacing:0px;fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:1.10999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="7.406137"
y="41.795387"
id="text1042"
transform="matrix(1.2652956,0.14571288,-0.10430839,0.77831689,0,0)"><tspan
sodipodi:role="line"
id="tspan1040"
x="7.406137"
y="41.795387"
style="fill:#e1e1e1;fill-opacity:1;stroke:#e1e1e1;stroke-width:1.10999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">q</tspan></text>
<path
id="path3151"
d="m 31.317035,20.132255 h 19.167626 v -1.277787 l 4.122053,2.556266 -4.122053,2.768616 V 22.901598 H 31.317035 Z"
style="fill:#000000;fill-opacity:1"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff"
d="m 31.443673,19.752306 h 18.646458 v -1.277787 l 4.009979,2.556266 -4.009979,2.768616 V 22.521649 H 31.443673 Z"
id="path134"
inkscape:connector-curvature="0" />
<path
id="path3943"
d="M 59.823791,27.288424 H 43.953868 v -1.278496 l -4.32815,2.556284 4.32815,2.769324 v -1.278478 h 15.869923 z"
style="fill:#000000;fill-opacity:1"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff"
d="M 60.077102,26.781838 H 44.207179 v -1.278496 l -4.32815,2.556283 4.32815,2.769325 v -1.278478 h 15.869923 z"
id="path136"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff"
d="m 67.290672,40.200944 -2.679324,3.40859 -9.686817,-8.09495 2.679307,-3.620941 z"
id="path142"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.27946547"
d="m 67.290672,40.200944 -2.679324,3.40859 -9.686817,-8.09495 2.679307,-3.620941 9.686834,8.307301"
id="path144"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff"
d="M 32.253177,22.308554 C 31.428756,30.615855 37.199634,38.070849 45.0316,38.923174 53.069574,39.987867 60.283198,34.023737 61.313751,25.716436 62.138084,17.409117 56.367259,9.9541413 48.329196,9.1018153 40.497354,8.0371403 33.077616,14.001236 32.253177,22.308554 l 2.061053,0.213095 c 0.824439,-7.029531 7.007457,-12.141354 13.80887,-11.289738 7.007545,0.63923 11.954002,7.242608 11.129563,14.271431 -0.824404,7.029549 -7.00751,12.141354 -14.014967,11.502814 C 38.436283,36.153832 33.489809,29.550472 34.31423,22.521649 Z"
id="path146"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.27946547"
d="M 32.253177,22.308554 C 31.428756,30.615855 37.199634,38.070849 45.0316,38.923174 53.069574,39.987867 60.283198,34.023737 61.313751,25.716436 62.138084,17.409117 56.367259,9.9541413 48.329196,9.1018153 40.497354,8.0371403 33.077616,14.001236 32.253177,22.308554"
id="path148"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.27946547"
d="m 34.31423,22.521649 c 0.824439,-7.029531 7.007457,-12.141354 13.80887,-11.289738 7.007545,0.63923 11.954002,7.242608 11.129563,14.271431 -0.824404,7.029549 -7.00751,12.141354 -14.014967,11.502814 C 38.436283,36.153832 33.489809,29.550472 34.31423,22.521649"
id="path150"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff"
d="M 30.398291,22.947802 C 29.573887,31.255103 35.344766,38.71008 43.38274,39.77479 51.214688,40.627115 58.634356,34.662985 59.458794,26.355684 60.283198,18.048365 54.718417,10.593389 46.680372,9.7410633 38.642397,8.6763713 31.428756,14.640501 30.398291,22.947802 l 2.061,0.212368 c 0.824421,-7.028804 7.007528,-12.141318 14.014984,-11.289029 6.801413,0.639248 11.74787,7.241917 10.923466,14.271449 C 56.573373,33.172139 50.390285,38.283926 43.588854,37.644696 36.581327,36.79308 31.634852,30.402779 32.459291,23.16017 Z"
id="path152"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.27946547"
d="M 30.398291,22.947802 C 29.573887,31.255103 35.344766,38.71008 43.38274,39.77479 51.214688,40.627115 58.634356,34.662985 59.458794,26.355684 60.283198,18.048365 54.718417,10.593389 46.680372,9.7410633 38.642397,8.6763713 31.428756,14.640501 30.398291,22.947802"
id="path154"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.27946547"
d="m 32.459291,23.16017 c 0.824421,-7.028804 7.007528,-12.141318 14.014984,-11.289029 6.801413,0.639248 11.74787,7.241917 10.923466,14.271449 C 56.573373,33.172139 50.390285,38.283926 43.588854,37.644696 36.581327,36.79308 31.634852,30.402779 32.459291,23.16017"
id="path156"
inkscape:connector-curvature="0" />
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

+244
View File
@@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
width="51.358818"
height="47.630692"
version="1.0"
sodipodi:docname="ise.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:title />
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<linearGradient
inkscape:collect="always"
id="linearGradient10123">
<stop
style="stop-color:#e4405c;stop-opacity:1;"
offset="0"
id="stop10125" />
<stop
style="stop-color:#e4405c;stop-opacity:0;"
offset="1"
id="stop10127" />
</linearGradient>
<linearGradient
id="linearGradient8331">
<stop
style="stop-color:#6e8caa;stop-opacity:1;"
offset="0"
id="stop8333" />
<stop
style="stop-color:#dde3ef;stop-opacity:1;"
offset="1"
id="stop8335" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6603">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6605" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6607" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6587">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6589" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6591" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6587"
id="linearGradient6593"
x1="3.95626"
y1="0.64267641"
x2="-1.2664427"
y2="0.62730032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6603"
id="linearGradient6609"
x1="2.2801981"
y1="1.4519272"
x2="-0.41311559"
y2="1.4649135"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10123"
id="linearGradient10129"
x1="1.3990936"
y1="1.4711363"
x2="0.49966058"
y2="0.56367606"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient6875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(24.897735,0,0,25.405463,-9.0988193,-4.8632254)"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999" />
</defs>
<sodipodi:namedview
inkscape:window-height="670"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="3.9479168"
inkscape:cx="23.755426"
inkscape:cy="27.781894"
inkscape:window-x="77"
inkscape:window-y="25"
inkscape:current-layer="svg1998"
showgrid="false"
inkscape:window-maximized="0" />
<path
id="path11907"
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
<path
id="path11020"
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
sodipodi:nodetypes="ccccc" />
<path
id="path2037"
d="m 0.31579887,5.6624885 0,41.1710225 44.34519313,0 0,-41.1710225 -44.34519313,0"
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001"
inkscape:connector-curvature="0" />
<path
id="path2041"
d="M -0.38461268,5.6292351 L 5.2920708,0.21786924 L 50.13289,0.21786924 L 44.406412,5.6292351 L -0.38461268,5.6292351"
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.001" />
<path
id="path2045"
d="M 44.273363,5.1335036 L 49.931392,0.17309204 L 49.931392,41.393412 L 44.273363,46.353824 L 44.273363,5.1335036"
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
<image
y="8.9374905"
x="3.9664361"
id="image3386"
xlink:href="data:image/png;base64,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 zaKWKGBlQzWNs8ZmdGg78GijRXnUSrFgLine truncated
style="image-rendering:optimizeSpeed"
preserveAspectRatio="none"
height="35.988243"
width="37.457115" />
</svg>

After

Width:  |  Height:  |  Size: 216 KiB

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<svg id="svg1998" width="66.000435" height="44.5159" version="1.0" xmlns="http://www.w3.org/2000/svg">
<defs id="defs2001">
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
</marker>
<linearGradient id="linearGradient2216" gradientUnits="userSpaceOnUse" gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)" x1="-1.0929121" y1="0.63145506" x2="-4.5832458" y2="0.070047863">
<stop style="stop-opacity: 1; stop-color: rgb(68, 70, 84);" offset="0" id="stop9314"/>
<stop style="stop-color:#ffffff;stop-opacity:0.94117647;" offset="1" id="stop9316"/>
</linearGradient>
</defs>
<rect style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4558" width="64.552505" height="41.53862" x="1.4479325" y="2.9772801" ry="11.631706" rx="32.212925"/>
<rect style="opacity: 1; fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 0.015; stroke-linecap: square; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 1; fill: rgb(68, 70, 84);" id="rect9971" width="64.499474" height="42.154343" x="0.0625" y="0.18084908" ry="11.557454" rx="32.249737"/>
<g id="g4160">
<path id="path4815" d="M 64.514069,11.541297 L 64.457031,10.955643 L 64.342949,10.36999 L 64.152814,9.8038604 L 63.867612,9.2182077 L 63.487345,8.6520765 L 63.050034,8.0859452 L 62.517657,7.5393369 L 61.909226,7.0122499 L 61.224742,6.4851607 L 60.464203,5.9775955 L 59.646626,5.4700289 L 58.752993,4.9819859 L 57.783307,4.4939413 L 56.75658,4.0644625 L 55.6538,3.6349838 L 54.493981,3.2055052 L 53.296132,2.8150692 L 52.022232,2.4636777 L 50.710303,2.1122862 L 49.341334,1.7999375 L 47.934339,1.5071117 L 46.489316,1.2338059 L 45.006267,0.99954576 L 43.504204,0.76528425 L 41.964114,0.58958842 L 40.385997,0.43341443 L 38.788867,0.29676153 L 37.191738,0.19915292 L 35.575597,0.12106555 L 33.940437,0.06250017 L 32.324296,0.06250017 L 32.324296,0.06250017 L 30.689136,0.06250017 L 29.053981,0.12106555 L 27.45685,0.19915292 L 25.840705,0.29676153 L 24.243576,0.43341443 L 22.684472,0.58958842 L 21.125372,0.76528425 L 19.623307,0.99954576 L 18.140258,1.2338059 L 16.695234,1.5071117 L 15.28824,1.7999375 L 13.919273,2.1122862 L 12.607342,2.4636777 L 11.333442,2.8150692 L 10.135592,3.2055052 L 8.9757693,3.6349838 L 7.8729941,4.0644625 L 6.8462664,4.4939413 L 5.8765785,4.9819859 L 4.9829488,5.4700289 L 4.1653682,5.9775955 L 3.4048335,6.4851607 L 2.7203448,7.0122499 L 2.1309311,7.5393369 L 1.5795405,8.0859452 L 1.1422325,8.6520765 L 0.76195982,9.2182077 L 0.47676065,9.8038604 L 0.26760898,10.36999 L 0.15353084,10.955643 L 0.11550327,11.541297 L 0.11550327,11.541297 L 0.15353084,12.12695 L 0.26760898,12.693081 L 0.47676065,13.278734 L 0.76195982,13.825344 L 1.1422325,14.410996 L 1.5795405,14.957605 L 2.1309311,15.523736 L 2.7203448,16.070348 L 3.4048335,16.597435 L 4.1653682,17.085479 L 4.9829488,17.593043 L 5.8765785,18.100608 L 6.8462664,18.549609 L 7.8729941,18.998611 L 8.9757693,19.447613 L 10.135592,19.857571 L 11.333442,20.248007 L 12.607342,20.599396 L 13.919273,20.950787 L 15.28824,21.263135 L 16.695234,21.575486 L 18.140258,21.829265 L 19.623307,22.083049 L 21.125372,22.297787 L 22.684472,22.473485 L 24.243576,22.629661 L 25.840705,22.766312 L 27.45685,22.863921 L 29.053981,22.942009 L 30.689136,23.000574 L 32.324296,23.000574 L 32.324296,23.000574 L 33.940437,23.000574 L 35.575597,22.942009 L 37.191738,22.863921 L 38.788867,22.766312 L 40.385997,22.629661 L 41.964114,22.473485 L 43.504204,22.297787 L 45.006267,22.083049 L 46.489316,21.829265 L 47.934339,21.575486 L 49.341334,21.263135 L 50.710303,20.950787 L 52.022232,20.599396 L 53.296132,20.248007 L 54.493981,19.857571 L 55.6538,19.447613 L 56.75658,18.998611 L 57.783307,18.549609 L 58.752993,18.100608 L 59.646626,17.593043 L 60.464203,17.085479 L 61.224742,16.597435 L 61.909226,16.070348 L 62.517657,15.523736 L 63.050034,14.957605 L 63.487345,14.410996 L 63.867612,13.825344 L 64.152814,13.278734 L 64.342949,12.693081 L 64.457031,12.12695 L 64.514069,11.541297" style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path id="path4819" d="M 33.023738,8.6936939 L 37.664889,10.327433 L 48.909313,5.4458969 L 53.946665,7.0599533 L 51.229891,3.0248142 L 38.061087,3.0248142 L 43.475766,4.225514 L 33.023738,8.6936939" style="fill:#000000;stroke:none;stroke-width:0.001"/>
<path id="path4821" d="M 31.08049,13.161874 L 26.439334,11.528132 L 15.591104,16.429352 L 10.176425,14.775929 L 12.874332,19.244109 L 26.439334,19.244109 L 20.628458,17.630052 L 31.08049,13.161874" style="fill:#000000;stroke:none;stroke-width:0.001"/>
<path id="path4823" d="M 11.327278,4.225514 L 15.968435,2.611458 L 27.212859,7.0599533 L 32.25021,5.8592533 L 29.552303,9.8943939 L 16.364632,9.8943939 L 21.779313,8.6936939 L 11.327278,4.225514" style="fill:#000000;stroke:none;stroke-width:0.001"/>
<path id="path4825" d="M 53.154272,18.023723 L 48.513117,19.657467 L 37.664889,14.775929 L 32.25021,16.429352 L 34.966985,12.33516 L 48.513117,12.33516 L 42.70224,13.555544 L 53.154272,18.023723" style="fill:#000000;stroke:none;stroke-width:0.001"/>
<path id="path4827" d="M 33.419936,9.1070493 L 38.061087,10.721105 L 49.286643,5.8592533 L 54.323994,7.4929926 L 51.60722,3.4184854 L 38.438415,3.4184854 L 43.871962,4.6191872 L 33.419936,9.1070493" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
<path id="path4829" d="M 31.476681,13.555544 L 26.816665,11.941487 L 15.968435,16.803341 L 10.553753,15.189284 L 13.25166,19.657467 L 26.816665,19.657467 L 21.005786,18.023723 L 31.476681,13.555544" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
<path id="path4831" d="M 11.723476,4.6191872 L 16.364632,3.0248142 L 27.609055,7.4929926 L 32.627541,6.2529266 L 29.929634,10.327433 L 16.741963,10.327433 L 22.175509,9.1070493 L 11.723476,4.6191872" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
<path id="path4833" d="M 53.531602,18.43708 L 48.909313,20.070823 L 38.061087,15.189284 L 32.627541,16.803341 L 35.344315,12.7682 L 48.909313,12.7682 L 43.098437,13.9689 L 53.531602,18.43708" style="fill:#ffffff;stroke:none;stroke-width:0.001"/>
</g>
<g transform="matrix(0.059769, 0, 0, 0.066697, 21.302736, 26.330629)">
<g transform="matrix(1,0,0,1,7.5,7.5)">
<g>
<path d="M 125.25 40.347 C 140.522 14.219 168.408 -3.654 200.529 -4.892 C 201.714 -4.938 202.904 -4.961 204.1 -4.961 L 217.098 -4.041 C 251.366 0.854 279.522 24.815 290.461 56.74 C 294.455 55.896 298.597 55.453 302.841 55.453 C 335.818 55.453 362.591 82.226 362.591 115.203 C 362.591 148.18 335.818 174.953 302.841 174.953 L 158.914 174.956 L 55.471 174.958 C 26.28 174.958 2.58 151.258 2.58 122.067 C 2.58 92.876 26.28 69.176 55.471 69.176 C 59.085 69.176 62.615 69.539 66.026 70.232 C 78.145 52.171 98.752 40.275 122.116 40.275 C 123.167 40.275 124.212 40.299 125.25 40.347 Z" style="fill: none; stroke-width: 14px; stroke: rgb(255, 255, 255);"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<svg id="svg1998" width="51.358818" height="47.630692" version="1.0" xmlns="http://www.w3.org/2000/svg">
<defs id="defs2001">
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
</marker>
<linearGradient id="linearGradient9199" gradientUnits="userSpaceOnUse" gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
<stop style="stop-opacity: 1; stop-color: rgb(0, 173, 105);" offset="0" id="stop8333"/>
<stop style="stop-opacity: 1; stop-color: rgb(154, 238, 204);" offset="1" id="stop8335"/>
</linearGradient>
</defs>
<path id="path11907" d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
<path id="path11020" d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
<path id="path2037" d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(0, 173, 105);"/>
<path id="path2041" d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552" style="fill: url(#linearGradient9199); fill-opacity: 1; stroke: none; stroke-width: 0.001;"/>
<path id="path2045" d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(16, 139, 90);"/>
<g id="Logos" transform="matrix(0.276292, 0, 0, 0.276292, -12.575964, -8.873246)">
<path class="cls-2" d="M147,170c-25.91,0-47-20.83-47-46.43,0,0,0-2.08,0-2.48,0-2.15.48-5.87,3.18-11.35l.38-.77.14.85c1.18,7.34,2.65,14.71,2.66,14.77,4.2,20.3,21.29,35,40.64,35a36.15,36.15,0,0,0,3.45-72.14h-.12l-.07-.1A68.76,68.76,0,0,0,143.89,80c-.75-.74-1.59-1.51-2.48-2.28l-.47-.4.61-.07A46.53,46.53,0,1,1,147,170Z" transform="translate(0 1.53)" style="fill: rgb(255, 255, 255);"/>
<path class="cls-2" d="M102.91,170a46.53,46.53,0,0,1,0-93.07c25.91,0,47,20.83,47,46.43,0,0,0,2.08,0,2.48,0,2.15-.48,5.87-3.18,11.35l-.38.77-.14-.85c-1.17-7.32-2.65-14.71-2.66-14.76-4.2-20.3-21.29-35-40.64-35a36.15,36.15,0,0,0-3.45,72.14h.12l.07.1a68.8,68.8,0,0,0,6.39,7.36c.76.75,1.59,1.52,2.48,2.28l.47.4-.61.07A46.76,46.76,0,0,1,102.91,170Z" transform="translate(0 1.53)" style="fill: rgb(255, 255, 255);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="67.82px" height="70px" viewBox="0 0 953.37 984"><defs><radialGradient id="radial-gradient" cx="-14491.11" cy="9293.72" fx="-14519.875714136173" r="450.88" gradientTransform="matrix(0.76, 0.03, 0.05, -1.12, 11485.79, 11147.95)" gradientUnits="userSpaceOnUse"><stop offset="0.1" stop-color="#ffea00"/><stop offset="0.17" stop-color="#ffde00"/><stop offset="0.28" stop-color="#ffbf00"/><stop offset="0.43" stop-color="#ff8e00"/><stop offset="0.77" stop-color="#ff272d"/><stop offset="0.87" stop-color="#e0255a"/><stop offset="0.95" stop-color="#cc2477"/><stop offset="1" stop-color="#c42482"/></radialGradient><radialGradient id="radial-gradient-2" cx="-7587.48" cy="8863.48" r="791.23" gradientTransform="matrix(1.23, 0, 0, -1.23, 9957.91, 11055.45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00ccda"/><stop offset="0.22" stop-color="#0083ff"/><stop offset="0.26" stop-color="#007af9"/><stop offset="0.33" stop-color="#0060e8"/><stop offset="0.33" stop-color="#005fe7"/><stop offset="0.44" stop-color="#2639ad"/><stop offset="0.52" stop-color="#401e84"/><stop offset="0.57" stop-color="#4a1475"/></radialGradient><linearGradient id="linear-gradient" x1="540.64" y1="254.8" x2="349.2" y2="881.03" gradientTransform="matrix(1, 0, 0, -1, 0, 984)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#000f43" stop-opacity="0.4"/><stop offset="0.48" stop-color="#001962" stop-opacity="0.17"/><stop offset="1" stop-color="#002079" stop-opacity="0"/></linearGradient><radialGradient id="radial-gradient-3" cx="-8337.74" cy="7467.89" r="266.89" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffea00"/><stop offset="0.5" stop-color="#ff272d"/><stop offset="1" stop-color="#c42482"/></radialGradient><radialGradient id="radial-gradient-4" cx="-8361.89" cy="7723.8" r="445.68" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe900"/><stop offset="0.16" stop-color="#ffaf0e"/><stop offset="0.32" stop-color="#ff7a1b"/><stop offset="0.47" stop-color="#ff4e26"/><stop offset="0.62" stop-color="#ff2c2e"/><stop offset="0.76" stop-color="#ff1434"/><stop offset="0.89" stop-color="#ff0538"/><stop offset="1" stop-color="#ff0039"/></radialGradient><radialGradient id="radial-gradient-5" cx="-8298.85" cy="7310.66" r="408.96" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ff272d"/><stop offset="0.5" stop-color="#c42482"/><stop offset="0.99" stop-color="#620700"/></radialGradient><radialGradient id="radial-gradient-6" cx="715.19" cy="589.96" fx="743.1665035759834" fy="576.1323859732546" r="782.18" gradientTransform="matrix(1, 0, 0, -1, 0, 984)" gradientUnits="userSpaceOnUse"><stop offset="0.16" stop-color="#ffea00"/><stop offset="0.23" stop-color="#ffde00"/><stop offset="0.37" stop-color="#ffbf00"/><stop offset="0.54" stop-color="#ff8e00"/><stop offset="0.76" stop-color="#ff272d"/><stop offset="0.8" stop-color="#f92433"/><stop offset="0.84" stop-color="#e91c45"/><stop offset="0.89" stop-color="#cf0e62"/><stop offset="0.94" stop-color="#b5007f"/></radialGradient><radialGradient id="radial-gradient-7" cx="670.34" cy="952.71" r="891.45" gradientTransform="matrix(1, 0, 0, -1, 0, 984)" gradientUnits="userSpaceOnUse"><stop offset="0.28" stop-color="#ffea00"/><stop offset="0.4" stop-color="#fd0"/><stop offset="0.63" stop-color="#ffba00"/><stop offset="0.86" stop-color="#ff9100"/><stop offset="0.93" stop-color="#ff6711"/><stop offset="0.99" stop-color="#ff4a1d"/></radialGradient><linearGradient id="linear-gradient-2" x1="-9023.45" y1="7636.92" x2="-8716.42" y2="7715.18" gradientTransform="matrix(1.22, 0.12, 0.12, -1.22, 10240.78, 10765.16)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c42482" stop-opacity="0.5"/><stop offset="0.47" stop-color="#ff272d" stop-opacity="0.5"/><stop offset="0.49" stop-color="#ff2c2c" stop-opacity="0.51"/><stop offset="0.68" stop-color="#ff7a1a" stop-opacity="0.72"/><stop offset="0.83" stop-color="#ffb20d" stop-opacity="0.87"/><stop offset="0.94" stop-color="#ffd605" stop-opacity="0.96"/><stop offset="1" stop-color="#ffe302"/></linearGradient><linearGradient id="linear-gradient-3" x1="188.87" y1="2081.23" x2="134.3" y2="2221.08" gradientTransform="matrix(0.99, 0.1, 0.1, -0.99, -250.09, 2306.15)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#891551" stop-opacity="0.6"/><stop offset="1" stop-color="#c42482" stop-opacity="0"/></linearGradient><linearGradient id="linear-gradient-4" x1="-38.43" y1="278.04" x2="55.68" y2="171.16" gradientTransform="matrix(0.99, 0.1, 0.1, -0.99, 229.04, 745.74)" gradientUnits="userSpaceOnUse"><stop offset="0.01" stop-color="#891551" stop-opacity="0.5"/><stop offset="0.48" stop-color="#ff272d" stop-opacity="0.5"/><stop offsLine truncated

After

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<svg id="svg1998" width="55.044277" height="63.620274" version="1.0" xmlns="http://www.w3.org/2000/svg">
<title id="title3303">ASA</title>
<defs id="defs2001">
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round" d="M 11.403143,4.732916 -1.416553,0.01878889 11.403144,-4.6953372 c -2.0480517,2.7832182 -2.0362508,6.5911436 -10e-7,9.4282532 z"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
<path id="path11921" d="M -1.28,0 -2.3466667,1.0666667 1.3866667,0 -2.3466667,-1.0666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.21333334pt;marker-start:none"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
<path id="path11936" d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"/>
</marker>
<linearGradient id="linearGradient6875" gradientUnits="userSpaceOnUse" gradientTransform="matrix(26.557584,0,0,27.099161,-9.2951537,-5.3720715)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
<stop style="stop-opacity: 1; stop-color: rgb(239, 239, 239);" offset="0" id="stop8333"/>
<stop style="stop-opacity: 1; stop-color: rgb(255, 255, 255);" offset="1" id="stop8335"/>
</linearGradient>
</defs>
<path id="path11907" d="m 2.277686,60.343382 v 3.25342 h 45.379267 v -3.25342 H 2.277686" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
<path id="path11020" d="M 47.765643,8.1809483 55.044279,1.3761504 55.028695,57.643455 47.654539,63.62027 47.765638,8.1809483" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
<path id="path2037" d="M 0.47692057,5.3149867 V 49.230745 H 47.778461 V 5.3149867 H 0.47692057" style="fill-opacity: 1; stroke: none; stroke-width: 1.06667; fill: rgb(239, 239, 239);"/>
<path id="path2041" d="M 0,5.8198859 6.0551291,0.04776213 H 53.885337 L 47.777093,5.8198859 H 0" style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
<path id="path2045" d="M 47.635174,5.2911061 53.670405,0 v 43.968341 l -6.035231,5.291106 V 5.2911061" style="fill-opacity: 1; stroke: none; stroke-width: 1.06667; fill: rgb(223, 223, 223);"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="m 68.017411,-124.00618 h 32.336679 v -2.5979 l 6.95208,5.19579 -6.95208,5.62568 v -2.59789 H 68.017411 v -5.62568" id="path39"/>
<path style="fill:#000000;stroke:#ffffff;stroke-width:1.06040335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 56.893321,-121.40829 H 70.452314" id="path61"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,61.82555 H 0.42243277 V 55.665507 H 16.19484 v 6.160043" id="path99"/>
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47963932;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,61.82555 H 0.57567743" id="path101"/>
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.66977537,55.665507 H 16.19484 v 6.160043" id="path103"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,61.82555 H 31.991982 v -6.160043 h 15.788901 v 6.160043" id="path105"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 40.280128,61.82555 H 24.474743 v -6.160043 h 15.805385 v 6.160043" id="path107"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 24.474743,61.82555 H 8.6940847 V 55.665507 H 24.474743 v 6.160043" id="path109"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.50290239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,53.512289 2.638353,-2.735375 v -6.805626 l -2.638353,2.720386 v 6.820615" id="path111"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,59.372711 2.638353,-2.166775 v -6.166822 l -2.638353,2.160008 v 6.173589" id="path125"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,61.82555 3.011438,-2.452839 v -6.173589 l -3.011438,2.466385 v 6.160043" id="path127"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 31.991982,55.665507 H 16.19484 v -6.166811 h 15.797142 v 6.166811" id="path133"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,55.665507 H 0.42243277 V 49.498685 H 16.19484 v 6.166822" id="path135"/>
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48108193;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,55.665507 H 0.48158037" id="path137"/>
<path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48039833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.52620409,49.498696 H 16.19484 v 6.166811" id="path139"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,55.665507 H 31.991982 v -6.166811 h 15.788901 v 6.166811" id="path141"/>
<path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.48692337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,55.665507 3.011438,-2.557269 v -6.387053 l -3.011438,2.550268 v 6.394054" id="path145"/>
<path d="M 5.129 23.9 L 15.893 23.9 L 15.893 30.974 L 5.129 30.974 Z M 18.834 13.881 L 29.395 13.881 L 29.395 20.952 L 18.834 20.952 Z M 18.834 33.92 L 29.395 33.92 L 29.395 40.987 L 18.834 40.987 Z M 32.331 23.9 L 43.128 23.9 L 43.128 30.974 L 32.331 30.974 Z M 9.547 13.881 C 7.305 14.472 5.541 16.98 5.129 20.161 L 5.129 20.952 L 15.893 20.952 L 15.893 13.881 Z M 5.129 33.92 L 5.129 34.791 C 5.519 37.844 7.16 40.27 9.272 40.985 L 15.895 40.985 L 15.895 33.919 L 5.13 33.919 Z M 43.129 20.952 L 43.129 20.157 C 42.717 16.974 40.956 14.472 38.711 13.881 L 32.336 13.881 L 32.336 20.952 Z M 38.988 40.99 C 41.093 40.275 42.734 37.849 43.126 34.798 L 43.126 33.92 L 32.334 33.92 L 32.334 40.99 L 38.989 40.99 Z" fill="#e2231a"/>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

+72
View File
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) by Marsupilami -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="70"
height="50"
viewBox="-0.5330211 -0.5330211 10.665723 7.5941177"
id="svg4441"
inkscape:version="0.91 r13725"
sodipodi:docname="Fortinet_logo.svg">
<metadata
id="metadata9">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2495"
inkscape:window-height="1056"
id="namedview7"
showgrid="false"
inkscape:snap-page="true"
inkscape:zoom="3.2924659"
inkscape:cx="164.79393"
inkscape:cy="31.941697"
inkscape:window-x="1985"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg4441" />
<defs
id="defs4443" />
<rect
style="stroke:#ffffff;stroke-width:0.15236747;stroke-opacity:1;fill:#ffffff"
id="rect3339"
width="10.665723"
height="7.6183734"
x="-0.53302109"
y="-0.54514885" />
<path
d="m 8.9771066,7.0637696 c 0.5909941,-0.200745 1.0508344,-0.881137 1.1616464,-1.737115 l 0,-0.247318 -3.0299144,0 0,1.984433 1.868268,0 z m 1.1618084,-5.6233777 0,-0.223764 C 10.022751,0.32371345 9.5286497,-0.37969755 8.8985776,-0.54511155 l -1.789576,0 0,1.98550345 3.0299134,0 z m -10.66545725,3.6390517 0,0.245177 c 0.1097407,0.856513 0.5695809,1.538511 1.16218056,1.739256 l 1.85863229,0 0,-1.984433 -3.02081285,0 z m 1.23990906,-5.62428915 c -0.62900136,0.165414 -1.12470806,0.86936 -1.23980196,1.76334495 l 0,0.222158 3.02081275,0 0,-1.98550295 -1.78101079,0 z m 9.42576219,2.81198615 -3.0299134,0 0,1.9855032 3.0299134,0 0,-1.9855032 z m -6.8194454,4.79647 2.964068,0 0,-1.984432 -2.964068,0 0,1.984432 z m 2.964068,-7.60850815 -2.964068,0 0,1.98550355 2.964068,0 0,-1.98550355 z m -6.81034515,4.79754135 3.02081315,0 0,-1.9855032 -3.02081315,0 0,1.9855032 z"
id="path4408"
style="fill:#ee2e24;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Logo" />
</svg>
<!-- version: 20110311, original size: 154.95825 17.76737, border: 3% -->

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

+284
View File
@@ -0,0 +1,284 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
width="51.358818"
height="47.630692"
version="1.0"
sodipodi:docname="vmx.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:title />
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<linearGradient
inkscape:collect="always"
id="linearGradient10123">
<stop
style="stop-color:#e4405c;stop-opacity:1;"
offset="0"
id="stop10125" />
<stop
style="stop-color:#e4405c;stop-opacity:0;"
offset="1"
id="stop10127" />
</linearGradient>
<linearGradient
id="linearGradient8331">
<stop
style="stop-color:#6e8caa;stop-opacity:1;"
offset="0"
id="stop8333" />
<stop
style="stop-color:#dde3ef;stop-opacity:1;"
offset="1"
id="stop8335" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6603">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6605" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6607" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6587">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6589" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6591" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6587"
id="linearGradient6593"
x1="3.95626"
y1="0.64267641"
x2="-1.2664427"
y2="0.62730032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6603"
id="linearGradient6609"
x1="2.2801981"
y1="1.4519272"
x2="-0.41311559"
y2="1.4649135"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10123"
id="linearGradient10129"
x1="1.3990936"
y1="1.4711363"
x2="0.49966058"
y2="0.56367606"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient6875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(24.897735,0,0,25.405463,-9.0988193,-4.8632254)"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999" />
</defs>
<sodipodi:namedview
inkscape:window-height="670"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="2.7915987"
inkscape:cx="23.755426"
inkscape:cy="-42.804631"
inkscape:window-x="77"
inkscape:window-y="25"
inkscape:current-layer="svg1998"
showgrid="false"
inkscape:window-maximized="0" />
<path
id="path11907"
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
<path
id="path11020"
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
sodipodi:nodetypes="ccccc" />
<path
id="path2037"
d="m 0.31579887,5.6624885 0,41.1710225 44.34519313,0 0,-41.1710225 -44.34519313,0"
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001"
inkscape:connector-curvature="0" />
<path
id="path2041"
d="M -0.38461268,5.6292351 L 5.2920708,0.21786924 L 50.13289,0.21786924 L 44.406412,5.6292351 L -0.38461268,5.6292351"
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.001" />
<path
id="path2045"
d="M 44.273363,5.1335036 L 49.931392,0.17309204 L 49.931392,41.393412 L 44.273363,46.353824 L 44.273363,5.1335036"
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
<g
id="g3381"
transform="translate(50.86691,-20.06019)">
<g
transform="matrix(0.1704237,0,0,0.1704237,-48.337546,-4.9946169)"
id="shape2-2"
v:mID="2"
v:groupContext="shape">
<title
id="title14">Sheet.2</title>
<path
d="m 117,420.03 c 64.45,0 117,-52.56 117,-117 0,-64.45 -52.55,-117.02 -117,-117.02 -64.45,0 -117,52.57 -117,117.02 0,64.44 52.55,117 117,117 z"
class="st1"
id="path16"
inkscape:connector-curvature="0"
style="fill:#12537c;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
</g>
<g
style="stroke:#84b2dd;stroke-width:2.40000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.1704237,0,0,0.1704237,-48.337546,-4.9946169)"
id="shape3-4"
v:mID="3"
v:groupContext="shape">
<title
id="title19">Sheet.3</title>
<path
d="m 117,420.03 c 64.45,0 117,-52.56 117,-117 0,-64.45 -52.55,-117.02 -117,-117.02 -64.45,0 -117,52.57 -117,117.02 0,64.44 52.55,117 117,117 z"
class="st2"
id="path21"
inkscape:connector-curvature="0"
style="fill:none;stroke:#84b2dd;stroke-width:2.40000153;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
style="stroke:#32425f;stroke-width:1.52000105;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="shape4-6"
v:mID="4"
v:groupContext="shape"
transform="matrix(0.1704237,0,0,0.1704237,-43.935853,-8.9257283)">
<title
id="title24">Sheet.4</title>
<path
d="m 82.44,318.48 -6.36,0 -72.74,0 0,-17.52 63.98,0 0,-37.34 -9.38,0 9.13,-15.81 7.06,-12.21 2.07,-3.59 9.14,15.8 9.12,15.81 -4.16,0 -5.46,0 0,46.09 0,8.77 -2.4,0 z m 73.95,5.68 0,-5.68 -45.5,0 -8.76,0 0,-2.41 0,-6.36 0,-72.21 17.52,0 0,63.45 36.73,0 0.01,-9.15 15.81,9.14 12.2,7.04 -1.2,2.09 1.2,-2.09 3.6,2.08 -15.8,9.13 -15.82,9.11 0,-4.14 0.01,0 z m -86.67,93.62 0,-2.4 2.4,0 -2.4,0 0,2.4 -2.4,0 0,-63.46 -35.71,0 0,9.59 -15.81,-9.13 -15.8,-9.12 15.8,-9.14 15.81,-9.12 0,4.16 0,5.25 44.47,0 8.76,0 0,2.4 0,6.36 0,72.21 -15.12,0 z m 41.16,-2.56 2.08,-1.2 -2.08,1.2 z m -9.13,-11 -9.12,-15.81 4.16,0 5.34,-0.01 0,-42.83 0,-8.76 2.4,0 6.36,0 72.73,0 0,17.51 -63.96,0 0,34.09 9.48,0 -9.13,15.82 -7.04,12.2 -2.08,3.6 -9.14,-15.81 z"
class="st3"
id="path26"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:#32425f;stroke-width:1.52000105;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

+324
View File
@@ -0,0 +1,324 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
width="51.358818"
height="47.630692"
version="1.0"
sodipodi:docname="juniper-vqfx.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
<dc:title />
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<linearGradient
inkscape:collect="always"
id="linearGradient10123">
<stop
style="stop-color:#e4405c;stop-opacity:1;"
offset="0"
id="stop10125" />
<stop
style="stop-color:#e4405c;stop-opacity:0;"
offset="1"
id="stop10127" />
</linearGradient>
<linearGradient
id="linearGradient8331">
<stop
style="stop-color:#6e8caa;stop-opacity:1;"
offset="0"
id="stop8333" />
<stop
style="stop-color:#dde3ef;stop-opacity:1;"
offset="1"
id="stop8335" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6603">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6605" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6607" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6587">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6589" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6591" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6587"
id="linearGradient6593"
x1="3.95626"
y1="0.64267641"
x2="-1.2664427"
y2="0.62730032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6603"
id="linearGradient6609"
x1="2.2801981"
y1="1.4519272"
x2="-0.41311559"
y2="1.4649135"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10123"
id="linearGradient10129"
x1="1.3990936"
y1="1.4711363"
x2="0.49966058"
y2="0.56367606"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient6875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(24.897735,0,0,25.405463,-9.0988193,-4.8632254)"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999" />
</defs>
<sodipodi:namedview
inkscape:window-height="719"
inkscape:window-width="1366"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="3.9479168"
inkscape:cx="55.736282"
inkscape:cy="27.781894"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:current-layer="svg1998"
showgrid="false"
inkscape:window-maximized="1" />
<path
id="path11907"
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
<path
id="path11020"
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
sodipodi:nodetypes="ccccc" />
<path
id="path2037"
d="m 0.31579887,5.6624885 0,41.1710225 44.34519313,0 0,-41.1710225 -44.34519313,0"
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001"
inkscape:connector-curvature="0" />
<path
id="path2041"
d="M -0.38461268,5.6292351 L 5.2920708,0.21786924 L 50.13289,0.21786924 L 44.406412,5.6292351 L -0.38461268,5.6292351"
style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:0.001" />
<path
id="path2045"
d="M 44.273363,5.1335036 L 49.931392,0.17309204 L 49.931392,41.393412 L 44.273363,46.353824 L 44.273363,5.1335036"
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
<g
id="shape7-14"
v:mID="7"
v:groupContext="shape"
transform="matrix(1.5233208,0,0,1.3864459,3.6924384,-5.7637956)">
<title
id="title45">Sheet.7</title>
<rect
x="0"
y="10.973"
width="24.75"
height="24.75"
class="st5"
id="rect47"
style="fill:#12537c;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
</g>
<g
id="shape8-16"
v:mID="8"
v:groupContext="shape"
transform="matrix(1.5233208,0,0,1.3864459,3.6924384,-5.7637956)">
<title
id="title50">Sheet.8</title>
<rect
x="0"
y="10.973"
width="24.75"
height="24.75"
class="st6"
id="rect52"
style="fill:none;stroke:#bcbec0;stroke-width:1.125;stroke-linecap:butt" />
</g>
<g
id="shape9-18"
v:mID="9"
v:groupContext="shape"
transform="matrix(1.5233208,0,0,1.3864459,20.985782,-28.936572)">
<title
id="title55">Sheet.9</title>
<path
d="m 7.38,34.34 -7.38,0 0,-1.49 7.38,0 0,-1.3 1.81,1.04 1.8,1.05 -1.8,1.04 -1.81,1.04 0,-1.38 z"
class="st7"
id="path57"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
</g>
<g
id="shape10-20"
v:mID="10"
v:groupContext="shape"
transform="matrix(1.5233208,0,0,1.3864459,20.985782,-18.328835)">
<title
id="title60">Sheet.10</title>
<path
d="m 7.38,34.34 -7.38,0 0,-1.49 7.38,0 0,-1.3 1.81,1.04 1.8,1.05 -1.8,1.04 -1.81,1.04 0,-1.38 z"
class="st7"
id="path62"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
</g>
<g
id="shape11-22"
v:mID="11"
v:groupContext="shape"
transform="matrix(1.5233208,0,0,1.3864459,8.0357632,-13.02525)">
<title
id="title65">Sheet.11</title>
<path
d="m 3.61,32.93 7.38,0 0,1.5 -7.38,0 0,1.29 -1.8,-1.04 -1.81,-1.04 1.81,-1.05 1.8,-1.04 0,1.38 z"
class="st7"
id="path67"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
</g>
<g
id="shape12-24"
v:mID="12"
v:groupContext="shape"
transform="matrix(1.5233208,0,0,1.3864459,8.0357632,-23.633003)">
<title
id="title70">Sheet.12</title>
<path
d="m 3.61,32.93 7.38,0 0,1.5 -7.38,0 0,1.29 -1.8,-1.04 -1.81,-1.04 1.81,-1.05 1.8,-1.04 0,1.38 z"
class="st7"
id="path72"
inkscape:connector-curvature="0"
style="fill:#ffffff;stroke:none;stroke-width:0.75;stroke-linecap:butt" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="36 365 38 38" width="38pt" height="38pt" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata> Produced by OmniGraffle 7.4
<dc:date>2017-07-08 22:25:20 +0000</dc:date>
</metadata>
<defs/>
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
<title>Canvas 1</title>
<rect fill="white" width="1" height="1"/>
<g>
<title>Layer 1</title>
<path d="M 55.00075 402.273 C 65.065 402.273 73.2715 394.065 73.2715 384.00075 C 73.2715 373.9365 65.065 365.727 55.00075 365.727 C 44.93575 365.727 36.7285 373.9365 36.7285 384.00075 C 36.7285 394.065 44.93575 402.273 55.00075 402.273 Z" fill="#12537c"/>
<path d="M 55.00075 402.273 C 65.065 402.273 73.2715 394.065 73.2715 384.00075 C 73.2715 373.9365 65.065 365.727 55.00075 365.727 C 44.93575 365.727 36.7285 373.9365 36.7285 384.00075 C 36.7285 394.065 44.93575 402.273 55.00075 402.273 Z" stroke="#bcbec0" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1.125"/>
<path d="M 53.194 382.81126 L 52.201 382.81126 L 40.8415 382.81126 L 40.8415 380.07526 L 50.83375 380.07526 L 50.83375 374.24476 L 49.36825 374.24476 L 50.79475 371.775 L 51.89725 369.86926 L 52.2205 369.3075 L 53.64775 371.775 L 55.07125 374.24476 L 54.42175 374.24476 L 53.569 374.24476 L 53.569 381.4425 L 53.569 382.81126 L 53.194 382.81126 L 53.194 382.81126 Z M 64.7425 383.6985 L 64.7425 382.81126 L 57.637 382.81126 L 56.269 382.81126 L 56.269 382.43626 L 56.269 381.4425 L 56.269 370.16626 L 59.005 370.16626 L 59.005 380.07376 L 64.74175 380.07376 L 64.74325 378.645 L 67.2115 380.07226 L 69.118 381.17176 L 68.9305 381.498 L 69.118 381.17176 L 69.67975 381.4965 L 67.2115 382.923 L 64.74175 384.34576 L 64.74175 383.6985 L 64.7425 383.6985 Z M 51.20875 398.31976 L 51.20875 397.94476 L 51.58375 397.94476 L 51.20875 397.94476 L 51.20875 398.31976 L 50.83375 398.31976 L 50.83375 388.4085 L 45.25675 388.4085 L 45.25675 389.907 L 42.787 388.4805 L 40.32025 387.057 L 42.787 385.62976 L 45.25675 384.2055 L 45.25675 384.855 L 45.25675 385.67476 L 52.201 385.67476 L 53.569 385.67476 L 53.569 386.04976 L 53.569 387.042 L 53.569 398.31976 L 51.20875 398.31976 L 51.20875 398.31976 Z M 57.63625 397.92 L 57.961 397.7325 L 57.63625 397.92 L 57.63625 397.92 Z M 56.2105 396.20176 L 54.78625 393.732 L 55.435 393.732 L 56.26975 393.7305 L 56.26975 387.042 L 56.26975 385.67476 L 56.64475 385.67476 L 57.63775 385.67476 L 68.99575 385.67476 L 68.99575 388.40926 L 59.0065 388.40926 L 59.0065 393.73276 L 60.48775 393.73276 L 59.062 396.2025 L 57.96175 398.10826 L 57.637 398.67076 L 56.2105 396.20176 L 56.2105 396.20176 Z" fill="white"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 63 KiB

+380
View File
@@ -0,0 +1,380 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
width="66.000435"
height="44.5159"
version="1.0"
sodipodi:docname="loadbalancer.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path7835"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
transform="scale(0.8)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker8031"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path8033"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path7714"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path7696"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<inkscape:path-effect
effect="powerstroke"
id="path-effect7647"
is_visible="true"
offset_points="0,0.5"
sort_points="true"
interpolator_type="CubicBezierJohan"
interpolator_beta="0.2"
start_linecap_type="zerowidth"
linejoin_type="round"
miter_limit="4"
end_linecap_type="zerowidth"
cusp_linecap_type="round" />
<linearGradient
id="linearGradient9312">
<stop
style="stop-color:#3c8c8c;stop-opacity:1;"
offset="0"
id="stop9314" />
<stop
style="stop-color:#ffffff;stop-opacity:0.94117647;"
offset="1"
id="stop9316" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9312"
id="linearGradient2216"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
x1="-1.0929121"
y1="0.63145506"
x2="-4.5832458"
y2="0.070047863" />
<linearGradient
id="linearGradient10123"
inkscape:collect="always">
<stop
id="stop10125"
offset="0"
style="stop-color:#e4405c;stop-opacity:1;" />
<stop
id="stop10127"
offset="1"
style="stop-color:#e4405c;stop-opacity:0;" />
</linearGradient>
<linearGradient
y2="0.56367606"
x2="0.49966058"
y1="1.4711363"
x1="1.3990936"
gradientTransform="matrix(19.859681,0,0,16.579703,65.763316,-33.354621)"
gradientUnits="userSpaceOnUse"
id="linearGradient9177"
xlink:href="#linearGradient10123"
inkscape:collect="always" />
<marker
style="overflow:visible"
id="Arrow2Lstart-4"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Lstart">
<path
transform="matrix(1.1,0,0,1.1,1.1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
id="path11918-6" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Send-3"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Send">
<path
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
id="path11921-9" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lstart-2"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
id="path11936-8" />
</marker>
<linearGradient
y2="0.070047863"
x2="-4.5832458"
y1="0.63145506"
x1="-1.0929121"
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
gradientUnits="userSpaceOnUse"
id="linearGradient9890"
xlink:href="#linearGradient9312"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:window-height="1003"
inkscape:window-width="1524"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="7.8958335"
inkscape:cx="10.561503"
inkscape:cy="-1.722049"
inkscape:window-x="1360"
inkscape:window-y="0"
inkscape:current-layer="g9892"
showgrid="false"
inkscape:window-maximized="0" />
<rect
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4558"
width="64.552505"
height="41.53862"
x="1.4479325"
y="2.9772801"
ry="11.631706"
rx="32.212925"
inkscape:transform-center-x="8.4568136" />
<rect
style="opacity:1;fill:#3c8c8c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.015;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect9971"
width="64.499474"
height="42.154343"
x="0.0625"
y="0.18084908"
ry="11.557454"
rx="32.249737"
inkscape:transform-center-x="8.2952569" />
<g
id="g4160"
transform="translate(-0.05300324,0)">
<path
id="path4815"
d="M 64.514069,11.541297 64.457031,10.955643 64.342949,10.36999 64.152814,9.8038604 63.867612,9.2182077 63.487345,8.6520765 63.050034,8.0859452 62.517657,7.5393369 61.909226,7.0122499 61.224742,6.4851607 60.464203,5.9775955 59.646626,5.4700289 58.752993,4.9819859 57.783307,4.4939413 56.75658,4.0644625 55.6538,3.6349838 54.493981,3.2055052 53.296132,2.8150692 52.022232,2.4636777 50.710303,2.1122862 49.341334,1.7999375 47.934339,1.5071117 46.489316,1.2338059 45.006267,0.99954576 43.504204,0.76528425 41.964114,0.58958842 40.385997,0.43341443 l -1.59713,-0.1366529 -1.597129,-0.0976086 -1.616141,-0.0780874 -1.63516,-0.05856538 -1.616141,0 0,0 -1.63516,0 -1.635155,0.05856538 -1.597131,0.0780874 -1.616145,0.0976086 -1.597129,0.1366529 -1.559104,0.15617399 -1.5591,0.17569583 -1.502065,0.23426151 -1.483049,0.23426014 -1.445024,0.2733058 -1.406994,0.2928258 -1.368967,0.3123487 -1.311931,0.3513915 -1.2739,0.3513915 -1.19785,0.390436 L 8.9757693,3.6349838 7.8729941,4.0644625 6.8462664,4.4939413 5.8765785,4.9819859 4.9829488,5.4700289 4.1653682,5.9775955 3.4048335,6.4851607 2.7203448,7.0122499 2.1309311,7.5393369 1.5795405,8.0859452 1.1422325,8.6520765 0.76195982,9.2182077 0.47676065,9.8038604 0.26760898,10.36999 l -0.11407814,0.585653 -0.0380276,0.585654 0,0 0.0380276,0.585653 0.11407814,0.566131 0.20915167,0.585653 0.28519917,0.54661 0.38027268,0.585652 0.437308,0.546609 0.5513906,0.566131 0.5894137,0.546612 0.6844887,0.527087 0.7605347,0.488044 0.8175806,0.507564 0.8936297,0.507565 0.9696879,0.449001 1.0267277,0.449002 1.1027752,0.449002 1.1598227,0.409958 1.19785,0.390436 1.2739,0.351389 1.311931,0.351391 1.368967,0.312348 1.406994,0.312351 1.445024,0.253779 1.483049,0.253784 1.502065,0.214738 1.5591,0.175698 1.559104,0.156176 1.597129,0.136651 1.616145,0.09761 1.597131,0.07809 1.635155,0.05857 1.63516,0 0,0 1.616141,0 1.63516,-0.05857 1.616141,-0.07809 1.597129,-0.09761 1.59713,-0.136651 1.578117,-0.156176 1.54009,-0.175698 1.502063,-0.214738 1.483049,-0.253784 1.445023,-0.253779 1.406995,-0.312351 1.368969,-0.312348 1.311929,-0.351391 1.2739,-0.351389 1.197849,-0.390436 1.159819,-0.409958 1.10278,-0.449002 1.026727,-0.449002 0.969686,-0.449001 0.893633,-0.507565 0.817577,-0.507564 0.760539,-0.488044 0.684484,-0.527087 0.608431,-0.546612 0.532377,-0.566131 0.437311,-0.546609 0.380267,-0.585652 0.285202,-0.54661 0.190135,-0.585653 0.114082,-0.566131 0.05704,-0.585653"
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 1.5224251,11.738982 c 22.4781589,0.179109 22.3886049,0.08956 22.3886049,0.08956 l 0,0"
id="path7667"
inkscape:connector-curvature="0" />
<g
id="g9892"
transform="translate(-57.894994,22.707717)">
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 72.358817,-10.103986 9.453197,0.0146 -0.0017,1.0942609 2.902891,-2.1840409 -2.895747,-2.441693 -0.0017,1.077681 -9.453197,-0.0146 -0.0038,2.453792"
id="path2049"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 93.50729,-13.193692 6.83173,-5.703422 0.95326,0.812405 0,-3.249623 -3.872633,0 0.953265,0.812406 -6.831729,5.70342 1.966107,1.624814"
id="path2055"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 93.50729,-10.739897 9.73124,0 0,1.0776818 2.62148,-2.4372178 -2.62148,-2.188521 0,1.094262 -9.73124,0 0,2.453795"
id="path2057"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 91.541183,-9.1150862 6.831729,5.703419 -0.953265,0.828987 3.872633,-0.265276 0,-2.984348 -0.95326,0.812406 -6.83173,-5.7199988 -1.966107,1.6248108"
id="path2059"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 72.061358,-10.386298 9.413478,0.01454 -0.0017,1.0942579 2.922724,-2.1674299 -2.91558,-2.458303 -0.0017,1.07768 -9.413478,-0.01454 -0.0038,2.453795"
id="path2065"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 93.844905,-12.911839 6.811865,-5.72 0.97313,0.828986 0,-3.266204 -3.912358,0 0.973126,0.812407 -6.811872,5.72 1.966109,1.624811"
id="path2071"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 93.844905,-10.458041 9.711385,0 0,1.0776808 2.62148,-2.4537968 -2.62148,-2.171941 0,1.094259 -9.711385,0 0,2.453798"
id="path2073"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 91.878796,-8.8332292 6.811872,5.703419 -0.973126,0.812405 3.912358,-0.265275 0,-3.000928 -0.97313,0.812406 -6.811865,-5.6868388 -1.966109,1.6248118"
id="path2075"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 95.45354,-11.701521 -0.01986,-0.215535 -0.01986,-0.248695 -0.03972,-0.215536 -0.03972,-0.215537 -0.05958,-0.232115 -0.07944,-0.215538 -0.0993,-0.215536 -0.07944,-0.215536 -0.119159,-0.198957 -0.119157,-0.198956 -0.139019,-0.198957 -0.158877,-0.198957 -0.158876,-0.182376 -0.178737,-0.165797 -0.178738,-0.182378 -0.178737,-0.149215 -0.218457,-0.149218 -0.198596,-0.149218 -0.218457,-0.132636 -0.218457,-0.116059 -0.258175,-0.132639 -0.218457,-0.09948 -0.258176,-0.0829 -0.258177,-0.0829 -0.238314,-0.0829 -0.278037,-0.04974 -0.238314,-0.06632 -0.297897,-0.03316 -0.258177,-0.03316 -0.278033,-0.01658 -0.258177,0 0,0 -0.278035,0 -0.258176,0.01658 -0.278036,0.03316 -0.258176,0.03316 -0.278036,0.06632 -0.258176,0.04974 -0.258176,0.0829 -0.258175,0.0829 -0.238315,0.0829 -0.218458,0.09948 -0.258175,0.132639 -0.238316,0.116059 -0.198598,0.132636 -0.218455,0.149218 -0.198598,0.149218 -0.178736,0.149215 -0.198597,0.182378 -0.158877,0.165797 -0.158878,0.182376 -0.158877,0.198957 -0.139019,0.198957 -0.119157,0.198956 -0.11916,0.198957 -0.0993,0.215536 -0.0993,0.215536 -0.05958,0.215538 -0.05958,0.232115 -0.05958,0.215537 -0.03972,0.215536 0,0.248695 -0.01986,0.215535 0,0 0.01986,0.215537 0,0.232117 0.03972,0.232116 0.05958,0.232116 0.05958,0.215536 0.05958,0.215536 0.0993,0.215536 0.0993,0.2155358 0.11916,0.198956 0.119157,0.198956 0.139019,0.198957 0.158877,0.198957 0.158878,0.182377 0.158877,0.165797 0.198597,0.165797 0.178736,0.165798 0.198598,0.149217 0.218455,0.149217 0.198598,0.132638 0.238316,0.116058 0.258175,0.116057 0.218458,0.116058 0.238315,0.09948 0.258175,0.0829 0.258176,0.04974 0.258176,0.06632 0.278036,0.06632 0.258176,0.01658 0.278036,0.04974 0.258176,0.01658 0.278035,0 0,0 0.258177,0 0.278033,-0.01658 0.258177,-0.04974 0.297897,-0.01658 0.238314,-0.06632 0.278037,-0.06632 0.238314,-0.04974 0.258177,-0.0829 0.258176,-0.09948 0.218457,-0.116058 0.258175,-0.116057 0.218457,-0.116058 0.218457,-0.132638 0.198596,-0.149217 0.218457,-0.149217 0.178737,-0.165798 0.178738,-0.165797 0.178737,-0.165797 0.158876,-0.182377 0.158877,-0.198957 0.139019,-0.198957 0.119157,-0.198956 0.119159,-0.198956 0.07944,-0.2155358 0.0993,-0.215536 0.07944,-0.215536 0.05958,-0.215536 0.03972,-0.232116 0.03972,-0.232116 0.01986,-0.232117 0.01986,-0.215537"
id="path2081"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 96.089049,-11.154389 -0.01986,-0.215537 -0.01986,-0.232116 -0.03972,-0.232115 -0.01986,-0.232117 -0.07944,-0.215536 -0.07944,-0.215536 -0.07944,-0.215536 -0.0993,-0.198957 -0.11916,-0.215537 -0.119156,-0.198956 -0.139018,-0.198955 -0.139018,-0.198957 -0.178738,-0.182377 -0.178736,-0.165798 -0.158877,-0.165797 -0.198597,-0.165796 -0.218457,-0.149218 -0.198595,-0.149218 -0.218458,-0.132637 -0.218457,-0.116057 -0.238315,-0.116059 -0.238318,-0.116057 -0.258175,-0.09948 -0.238316,-0.0829 -0.258175,-0.06632 -0.258176,-0.04974 -0.258178,-0.06632 -0.278033,-0.03316 -0.258177,-0.03316 -0.278036,-0.01658 -0.278035,0 0,0 -0.278036,0 -0.258175,0.01658 -0.258176,0.03316 -0.278036,0.03316 -0.258175,0.06632 -0.258177,0.04974 -0.278035,0.06632 -0.238316,0.0829 -0.238317,0.09948 -0.258176,0.116057 -0.218456,0.116059 -0.238316,0.116057 -0.218457,0.132637 -0.218457,0.149218 -0.198597,0.149218 -0.178735,0.165796 -0.198599,0.165797 -0.158876,0.165798 -0.158877,0.182377 -0.158878,0.198957 -0.139018,0.198955 -0.119156,0.198956 -0.11916,0.215537 -0.0993,0.198957 -0.07944,0.215536 -0.07944,0.215536 -0.05958,0.215536 -0.03972,0.232117 -0.03972,0.232115 -0.01986,0.232116 0,0.215537 0,0 0,0.232116 0.01986,0.232115 0.03972,0.198957 0.03972,0.232117 0.05958,0.232116 0.07944,0.2155358 0.07944,0.215536 0.0993,0.215536 0.11916,0.198956 0.119156,0.198956 0.139018,0.198957 0.158878,0.182377 0.158877,0.198956 0.158876,0.165798 0.198599,0.165797 0.178735,0.165797 0.198597,0.149217 0.218457,0.132637 0.218457,0.149219 0.238316,0.116057 0.218456,0.116058 0.258176,0.116059 0.238317,0.0829 0.238316,0.0829 0.278035,0.0829 0.258177,0.06632 0.258175,0.04974 0.278036,0.03316 0.258176,0.03316 0.258175,0.01658 0.278036,0 0,0 0.278035,0 0.278036,-0.01658 0.258177,-0.03316 0.278033,-0.03316 0.258178,-0.04974 0.258176,-0.06632 0.258175,-0.0829 0.238316,-0.0829 0.258175,-0.0829 0.238318,-0.116059 0.238315,-0.116058 0.218457,-0.116057 0.218458,-0.149219 0.198595,-0.132637 0.218457,-0.149217 0.198597,-0.165797 0.158877,-0.165797 0.178736,-0.165798 0.178738,-0.198956 0.139018,-0.182377 0.139018,-0.198957 0.119156,-0.198956 0.11916,-0.198956 0.0993,-0.215536 0.07944,-0.215536 0.07944,-0.2155358 0.07944,-0.232116 0.01986,-0.232117 0.03972,-0.198957 0.01986,-0.232115 0.01986,-0.232116"
id="path2083"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none;stroke-width:0.001"
d="m 95.751434,-11.419665 -0.01986,-0.232116 0,-0.232116 -0.03972,-0.215536 -0.05958,-0.232116 -0.05958,-0.215536 -0.05958,-0.215536 -0.0993,-0.215537 -0.0993,-0.215534 -0.0993,-0.198958 -0.119148,-0.198957 -0.158878,-0.198956 -0.158878,-0.198957 -0.139019,-0.182376 -0.178736,-0.165797 -0.178738,-0.165798 -0.198596,-0.165797 -0.198597,-0.149218 -0.198596,-0.149217 -0.218457,-0.132637 -0.238318,-0.132639 -0.238314,-0.116057 -0.218458,-0.09948 -0.258175,-0.09948 -0.258176,-0.0829 -0.258176,-0.0829 -0.258176,-0.04974 -0.258175,-0.04974 -0.278036,-0.03316 -0.258176,-0.03316 -0.278035,-0.01658 -0.258175,0 0,0 -0.278037,0 -0.258175,0.01658 -0.278037,0.03316 -0.278036,0.03316 -0.258175,0.04974 -0.258176,0.04974 -0.258176,0.0829 -0.258176,0.0829 -0.238315,0.09948 -0.238318,0.09948 -0.238314,0.116057 -0.238316,0.132639 -0.198598,0.132637 -0.218455,0.149217 -0.198598,0.149218 -0.178737,0.165797 -0.198596,0.165798 -0.178738,0.165797 -0.139017,0.182376 -0.158877,0.198957 -0.158878,0.198956 -0.0993,0.198957 -0.119159,0.198958 -0.0993,0.215534 -0.0993,0.215537 -0.05958,0.215536 -0.05958,0.215536 -0.05958,0.232116 -0.03972,0.215536 0,0.232116 -0.01986,0.232116 0,0 0.01986,0.215537 0,0.232115 0.03972,0.232116 0.05958,0.215536 0.05958,0.232115 0.05958,0.215538 0.0993,0.2155368 0.0993,0.198956 0.119159,0.215536 0.0993,0.198956 0.158878,0.198958 0.158877,0.182375 0.139017,0.182378 0.178738,0.165796 0.198596,0.182377 0.178737,0.149218 0.198598,0.165797 0.218455,0.132638 0.198598,0.149216 0.238316,0.116058 0.238314,0.116059 0.238318,0.116057 0.238315,0.0829 0.258176,0.0829 0.258176,0.0829 0.258176,0.04974 0.258175,0.04974 0.278036,0.04974 0.278037,0.03316 0.258175,0 0.278037,0.01658 0,0 0.258175,-0.01658 0.278035,0 0.258176,-0.03316 0.278036,-0.04974 0.258175,-0.04974 0.258176,-0.04974 0.258176,-0.0829 0.258176,-0.0829 0.258175,-0.0829 0.218458,-0.116057 0.238314,-0.116059 0.238318,-0.116058 0.218457,-0.149216 0.198596,-0.132638 0.198597,-0.165797 0.198596,-0.149218 0.178738,-0.182377 0.178736,-0.165796 0.139019,-0.182378 0.158878,-0.182375 0.158878,-0.198958 0.119156,-0.198956 0.0993,-0.215536 0.0993,-0.198956 0.0993,-0.2155368 0.05958,-0.215538 0.05958,-0.232115 0.05958,-0.215536 0.03972,-0.232116 0,-0.232115 0.01986,-0.215537"
id="path2085"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 23 KiB

@@ -0,0 +1,387 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
width="66.000435"
height="44.5159"
version="1.0"
sodipodi:docname="loadbalancer_docker.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path7835"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
transform="scale(0.8)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker8031"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path8033"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path7714"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path7696"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<inkscape:path-effect
effect="powerstroke"
id="path-effect7647"
is_visible="true"
offset_points="0,0.5"
sort_points="true"
interpolator_type="CubicBezierJohan"
interpolator_beta="0.2"
start_linecap_type="zerowidth"
linejoin_type="round"
miter_limit="4"
end_linecap_type="zerowidth"
cusp_linecap_type="round" />
<linearGradient
id="linearGradient9312">
<stop
style="stop-color:#3c8c8c;stop-opacity:1;"
offset="0"
id="stop9314" />
<stop
style="stop-color:#ffffff;stop-opacity:0.94117647;"
offset="1"
id="stop9316" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9312"
id="linearGradient2216"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
x1="-1.0929121"
y1="0.63145506"
x2="-4.5832458"
y2="0.070047863" />
<linearGradient
id="linearGradient10123"
inkscape:collect="always">
<stop
id="stop10125"
offset="0"
style="stop-color:#e4405c;stop-opacity:1;" />
<stop
id="stop10127"
offset="1"
style="stop-color:#e4405c;stop-opacity:0;" />
</linearGradient>
<linearGradient
y2="0.56367606"
x2="0.49966058"
y1="1.4711363"
x1="1.3990936"
gradientTransform="matrix(19.859681,0,0,16.579703,65.763316,-33.354621)"
gradientUnits="userSpaceOnUse"
id="linearGradient9177"
xlink:href="#linearGradient10123"
inkscape:collect="always" />
<marker
style="overflow:visible"
id="Arrow2Lstart-4"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Lstart">
<path
transform="matrix(1.1,0,0,1.1,1.1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
id="path11918-6" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Send-3"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Send">
<path
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
id="path11921-9" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lstart-2"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
id="path11936-8" />
</marker>
<linearGradient
y2="0.070047863"
x2="-4.5832458"
y1="0.63145506"
x1="-1.0929121"
gradientTransform="matrix(15.252829,0,0,14.082619,53.467529,3.4188377)"
gradientUnits="userSpaceOnUse"
id="linearGradient9890"
xlink:href="#linearGradient9312"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:window-height="1003"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="5.5831974"
inkscape:cx="53.403195"
inkscape:cy="-9.1150017"
inkscape:window-x="0"
inkscape:window-y="31"
inkscape:current-layer="g9892"
showgrid="false"
inkscape:window-maximized="0" />
<rect
style="opacity:1;fill:#000000;fill-opacity:0.39215687;fill-rule:evenodd;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4558"
width="64.552505"
height="41.53862"
x="1.4479325"
y="2.9772801"
ry="11.631706"
rx="32.212925"
inkscape:transform-center-x="8.4568136" />
<rect
style="opacity:1;fill:#3c8c8c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.015;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect9971"
width="64.499474"
height="42.154343"
x="0.0625"
y="0.18084908"
ry="11.557454"
rx="32.249737"
inkscape:transform-center-x="8.2952569" />
<g
id="g4160"
transform="translate(-0.05300324,0)">
<path
id="path4815"
d="M 64.514069,11.541297 64.457031,10.955643 64.342949,10.36999 64.152814,9.8038604 63.867612,9.2182077 63.487345,8.6520765 63.050034,8.0859452 62.517657,7.5393369 61.909226,7.0122499 61.224742,6.4851607 60.464203,5.9775955 59.646626,5.4700289 58.752993,4.9819859 57.783307,4.4939413 56.75658,4.0644625 55.6538,3.6349838 54.493981,3.2055052 53.296132,2.8150692 52.022232,2.4636777 50.710303,2.1122862 49.341334,1.7999375 47.934339,1.5071117 46.489316,1.2338059 45.006267,0.99954576 43.504204,0.76528425 41.964114,0.58958842 40.385997,0.43341443 l -1.59713,-0.1366529 -1.597129,-0.0976086 -1.616141,-0.0780874 -1.63516,-0.05856538 -1.616141,0 0,0 -1.63516,0 -1.635155,0.05856538 -1.597131,0.0780874 -1.616145,0.0976086 -1.597129,0.1366529 -1.559104,0.15617399 -1.5591,0.17569583 -1.502065,0.23426151 -1.483049,0.23426014 -1.445024,0.2733058 -1.406994,0.2928258 -1.368967,0.3123487 -1.311931,0.3513915 -1.2739,0.3513915 -1.19785,0.390436 L 8.9757693,3.6349838 7.8729941,4.0644625 6.8462664,4.4939413 5.8765785,4.9819859 4.9829488,5.4700289 4.1653682,5.9775955 3.4048335,6.4851607 2.7203448,7.0122499 2.1309311,7.5393369 1.5795405,8.0859452 1.1422325,8.6520765 0.76195982,9.2182077 0.47676065,9.8038604 0.26760898,10.36999 l -0.11407814,0.585653 -0.0380276,0.585654 0,0 0.0380276,0.585653 0.11407814,0.566131 0.20915167,0.585653 0.28519917,0.54661 0.38027268,0.585652 0.437308,0.546609 0.5513906,0.566131 0.5894137,0.546612 0.6844887,0.527087 0.7605347,0.488044 0.8175806,0.507564 0.8936297,0.507565 0.9696879,0.449001 1.0267277,0.449002 1.1027752,0.449002 1.1598227,0.409958 1.19785,0.390436 1.2739,0.351389 1.311931,0.351391 1.368967,0.312348 1.406994,0.312351 1.445024,0.253779 1.483049,0.253784 1.502065,0.214738 1.5591,0.175698 1.559104,0.156176 1.597129,0.136651 1.616145,0.09761 1.597131,0.07809 1.635155,0.05857 1.63516,0 0,0 1.616141,0 1.63516,-0.05857 1.616141,-0.07809 1.597129,-0.09761 1.59713,-0.136651 1.578117,-0.156176 1.54009,-0.175698 1.502063,-0.214738 1.483049,-0.253784 1.445023,-0.253779 1.406995,-0.312351 1.368969,-0.312348 1.311929,-0.351391 1.2739,-0.351389 1.197849,-0.390436 1.159819,-0.409958 1.10278,-0.449002 1.026727,-0.449002 0.969686,-0.449001 0.893633,-0.507565 0.817577,-0.507564 0.760539,-0.488044 0.684484,-0.527087 0.608431,-0.546612 0.532377,-0.566131 0.437311,-0.546609 0.380267,-0.585652 0.285202,-0.54661 0.190135,-0.585653 0.114082,-0.566131 0.05704,-0.585653"
style="fill:url(#linearGradient2216);fill-opacity:1;stroke:none;stroke-width:0.01928605;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 1.5224251,11.738982 c 22.4781589,0.179109 22.3886049,0.08956 22.3886049,0.08956 l 0,0"
id="path7667"
inkscape:connector-curvature="0" />
<g
id="g9892"
transform="translate(-57.894994,22.707717)">
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 72.358817,-10.103986 9.453197,0.0146 -0.0017,1.0942609 2.902891,-2.1840409 -2.895747,-2.441693 -0.0017,1.077681 -9.453197,-0.0146 -0.0038,2.453792"
id="path2049"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 93.50729,-13.193692 6.83173,-5.703422 0.95326,0.812405 0,-3.249623 -3.872633,0 0.953265,0.812406 -6.831729,5.70342 1.966107,1.624814"
id="path2055"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 93.50729,-10.739897 9.73124,0 0,1.0776818 2.62148,-2.4372178 -2.62148,-2.188521 0,1.094262 -9.73124,0 0,2.453795"
id="path2057"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 91.541183,-9.1150862 6.831729,5.703419 -0.953265,0.828987 3.872633,-0.265276 0,-2.984348 -0.95326,0.812406 -6.83173,-5.7199988 -1.966107,1.6248108"
id="path2059"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 72.061358,-10.386298 9.413478,0.01454 -0.0017,1.0942579 2.922724,-2.1674299 -2.91558,-2.458303 -0.0017,1.07768 -9.413478,-0.01454 -0.0038,2.453795"
id="path2065"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 93.844905,-12.911839 6.811865,-5.72 0.97313,0.828986 0,-3.266204 -3.912358,0 0.973126,0.812407 -6.811872,5.72 1.966109,1.624811"
id="path2071"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 93.844905,-10.458041 9.711385,0 0,1.0776808 2.62148,-2.4537968 -2.62148,-2.171941 0,1.094259 -9.711385,0 0,2.453798"
id="path2073"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 91.878796,-8.8332292 6.811872,5.703419 -0.973126,0.812405 3.912358,-0.265275 0,-3.000928 -0.97313,0.812406 -6.811865,-5.6868388 -1.966109,1.6248118"
id="path2075"
inkscape:connector-curvature="0" />
<path
style="fill:#000000;stroke:none;stroke-width:0.001"
d="m 95.45354,-11.701521 -0.01986,-0.215535 -0.01986,-0.248695 -0.03972,-0.215536 -0.03972,-0.215537 -0.05958,-0.232115 -0.07944,-0.215538 -0.0993,-0.215536 -0.07944,-0.215536 -0.119159,-0.198957 -0.119157,-0.198956 -0.139019,-0.198957 -0.158877,-0.198957 -0.158876,-0.182376 -0.178737,-0.165797 -0.178738,-0.182378 -0.178737,-0.149215 -0.218457,-0.149218 -0.198596,-0.149218 -0.218457,-0.132636 -0.218457,-0.116059 -0.258175,-0.132639 -0.218457,-0.09948 -0.258176,-0.0829 -0.258177,-0.0829 -0.238314,-0.0829 -0.278037,-0.04974 -0.238314,-0.06632 -0.297897,-0.03316 -0.258177,-0.03316 -0.278033,-0.01658 -0.258177,0 0,0 -0.278035,0 -0.258176,0.01658 -0.278036,0.03316 -0.258176,0.03316 -0.278036,0.06632 -0.258176,0.04974 -0.258176,0.0829 -0.258175,0.0829 -0.238315,0.0829 -0.218458,0.09948 -0.258175,0.132639 -0.238316,0.116059 -0.198598,0.132636 -0.218455,0.149218 -0.198598,0.149218 -0.178736,0.149215 -0.198597,0.182378 -0.158877,0.165797 -0.158878,0.182376 -0.158877,0.198957 -0.139019,0.198957 -0.119157,0.198956 -0.11916,0.198957 -0.0993,0.215536 -0.0993,0.215536 -0.05958,0.215538 -0.05958,0.232115 -0.05958,0.215537 -0.03972,0.215536 0,0.248695 -0.01986,0.215535 0,0 0.01986,0.215537 0,0.232117 0.03972,0.232116 0.05958,0.232116 0.05958,0.215536 0.05958,0.215536 0.0993,0.215536 0.0993,0.2155358 0.11916,0.198956 0.119157,0.198956 0.139019,0.198957 0.158877,0.198957 0.158878,0.182377 0.158877,0.165797 0.198597,0.165797 0.178736,0.165798 0.198598,0.149217 0.218455,0.149217 0.198598,0.132638 0.238316,0.116058 0.258175,0.116057 0.218458,0.116058 0.238315,0.09948 0.258175,0.0829 0.258176,0.04974 0.258176,0.06632 0.278036,0.06632 0.258176,0.01658 0.278036,0.04974 0.258176,0.01658 0.278035,0 0,0 0.258177,0 0.278033,-0.01658 0.258177,-0.04974 0.297897,-0.01658 0.238314,-0.06632 0.278037,-0.06632 0.238314,-0.04974 0.258177,-0.0829 0.258176,-0.09948 0.218457,-0.116058 0.258175,-0.116057 0.218457,-0.116058 0.218457,-0.132638 0.198596,-0.149217 0.218457,-0.149217 0.178737,-0.165798 0.178738,-0.165797 0.178737,-0.165797 0.158876,-0.182377 0.158877,-0.198957 0.139019,-0.198957 0.119157,-0.198956 0.119159,-0.198956 0.07944,-0.2155358 0.0993,-0.215536 0.07944,-0.215536 0.05958,-0.215536 0.03972,-0.232116 0.03972,-0.232116 0.01986,-0.232117 0.01986,-0.215537"
id="path2081"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.001"
d="m 96.089049,-11.154389 -0.01986,-0.215537 -0.01986,-0.232116 -0.03972,-0.232115 -0.01986,-0.232117 -0.07944,-0.215536 -0.07944,-0.215536 -0.07944,-0.215536 -0.0993,-0.198957 -0.11916,-0.215537 -0.119156,-0.198956 -0.139018,-0.198955 -0.139018,-0.198957 -0.178738,-0.182377 -0.178736,-0.165798 -0.158877,-0.165797 -0.198597,-0.165796 -0.218457,-0.149218 -0.198595,-0.149218 -0.218458,-0.132637 -0.218457,-0.116057 -0.238315,-0.116059 -0.238318,-0.116057 -0.258175,-0.09948 -0.238316,-0.0829 -0.258175,-0.06632 -0.258176,-0.04974 -0.258178,-0.06632 -0.278033,-0.03316 -0.258177,-0.03316 -0.278036,-0.01658 -0.278035,0 0,0 -0.278036,0 -0.258175,0.01658 -0.258176,0.03316 -0.278036,0.03316 -0.258175,0.06632 -0.258177,0.04974 -0.278035,0.06632 -0.238316,0.0829 -0.238317,0.09948 -0.258176,0.116057 -0.218456,0.116059 -0.238316,0.116057 -0.218457,0.132637 -0.218457,0.149218 -0.198597,0.149218 -0.178735,0.165796 -0.198599,0.165797 -0.158876,0.165798 -0.158877,0.182377 -0.158878,0.198957 -0.139018,0.198955 -0.119156,0.198956 -0.11916,0.215537 -0.0993,0.198957 -0.07944,0.215536 -0.07944,0.215536 -0.05958,0.215536 -0.03972,0.232117 -0.03972,0.232115 -0.01986,0.232116 0,0.215537 0,0 0,0.232116 0.01986,0.232115 0.03972,0.198957 0.03972,0.232117 0.05958,0.232116 0.07944,0.2155358 0.07944,0.215536 0.0993,0.215536 0.11916,0.198956 0.119156,0.198956 0.139018,0.198957 0.158878,0.182377 0.158877,0.198956 0.158876,0.165798 0.198599,0.165797 0.178735,0.165797 0.198597,0.149217 0.218457,0.132637 0.218457,0.149219 0.238316,0.116057 0.218456,0.116058 0.258176,0.116059 0.238317,0.0829 0.238316,0.0829 0.278035,0.0829 0.258177,0.06632 0.258175,0.04974 0.278036,0.03316 0.258176,0.03316 0.258175,0.01658 0.278036,0 0,0 0.278035,0 0.278036,-0.01658 0.258177,-0.03316 0.278033,-0.03316 0.258178,-0.04974 0.258176,-0.06632 0.258175,-0.0829 0.238316,-0.0829 0.258175,-0.0829 0.238318,-0.116059 0.238315,-0.116058 0.218457,-0.116057 0.218458,-0.149219 0.198595,-0.132637 0.218457,-0.149217 0.198597,-0.165797 0.158877,-0.165797 0.178736,-0.165798 0.178738,-0.198956 0.139018,-0.182377 0.139018,-0.198957 0.119156,-0.198956 0.11916,-0.198956 0.0993,-0.215536 0.07944,-0.215536 0.07944,-0.2155358 0.07944,-0.232116 0.01986,-0.232117 0.03972,-0.198957 0.01986,-0.232115 0.01986,-0.232116"
id="path2083"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none;stroke-width:0.001"
d="m 95.751434,-11.419665 -0.01986,-0.232116 0,-0.232116 -0.03972,-0.215536 -0.05958,-0.232116 -0.05958,-0.215536 -0.05958,-0.215536 -0.0993,-0.215537 -0.0993,-0.215534 -0.0993,-0.198958 -0.119148,-0.198957 -0.158878,-0.198956 -0.158878,-0.198957 -0.139019,-0.182376 -0.178736,-0.165797 -0.178738,-0.165798 -0.198596,-0.165797 -0.198597,-0.149218 -0.198596,-0.149217 -0.218457,-0.132637 -0.238318,-0.132639 -0.238314,-0.116057 -0.218458,-0.09948 -0.258175,-0.09948 -0.258176,-0.0829 -0.258176,-0.0829 -0.258176,-0.04974 -0.258175,-0.04974 -0.278036,-0.03316 -0.258176,-0.03316 -0.278035,-0.01658 -0.258175,0 0,0 -0.278037,0 -0.258175,0.01658 -0.278037,0.03316 -0.278036,0.03316 -0.258175,0.04974 -0.258176,0.04974 -0.258176,0.0829 -0.258176,0.0829 -0.238315,0.09948 -0.238318,0.09948 -0.238314,0.116057 -0.238316,0.132639 -0.198598,0.132637 -0.218455,0.149217 -0.198598,0.149218 -0.178737,0.165797 -0.198596,0.165798 -0.178738,0.165797 -0.139017,0.182376 -0.158877,0.198957 -0.158878,0.198956 -0.0993,0.198957 -0.119159,0.198958 -0.0993,0.215534 -0.0993,0.215537 -0.05958,0.215536 -0.05958,0.215536 -0.05958,0.232116 -0.03972,0.215536 0,0.232116 -0.01986,0.232116 0,0 0.01986,0.215537 0,0.232115 0.03972,0.232116 0.05958,0.215536 0.05958,0.232115 0.05958,0.215538 0.0993,0.2155368 0.0993,0.198956 0.119159,0.215536 0.0993,0.198956 0.158878,0.198958 0.158877,0.182375 0.139017,0.182378 0.178738,0.165796 0.198596,0.182377 0.178737,0.149218 0.198598,0.165797 0.218455,0.132638 0.198598,0.149216 0.238316,0.116058 0.238314,0.116059 0.238318,0.116057 0.238315,0.0829 0.258176,0.0829 0.258176,0.0829 0.258176,0.04974 0.258175,0.04974 0.278036,0.04974 0.278037,0.03316 0.258175,0 0.278037,0.01658 0,0 0.258175,-0.01658 0.278035,0 0.258176,-0.03316 0.278036,-0.04974 0.258175,-0.04974 0.258176,-0.04974 0.258176,-0.0829 0.258176,-0.0829 0.258175,-0.0829 0.218458,-0.116057 0.238314,-0.116059 0.238318,-0.116058 0.218457,-0.149216 0.198596,-0.132638 0.198597,-0.165797 0.198596,-0.149218 0.178738,-0.182377 0.178736,-0.165796 0.139019,-0.182378 0.158878,-0.182375 0.158878,-0.198958 0.119156,-0.198956 0.0993,-0.215536 0.0993,-0.198956 0.0993,-0.2155368 0.05958,-0.215538 0.05958,-0.232115 0.05958,-0.215536 0.03972,-0.232116 0,-0.232115 0.01986,-0.215537"
id="path2085"
inkscape:connector-curvature="0" />
<image
y="0.11224562"
x="72.823662"
id="image4051"
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTLine truncated
height="19.227247"
width="36.265862" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 57 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 60 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 94 KiB

+85
View File
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
height="70"
width="70"
id="svg2"
inkscape:version="0.91 r13725"
sodipodi:docname="microsoft.svg">
<metadata
id="metadata18">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs16" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1056"
id="namedview14"
showgrid="false"
inkscape:zoom="6.0820847"
inkscape:cx="11.449874"
inkscape:cy="32.506345"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<rect
height="64.5785798"
width="64.5785805"
x="2.7154145"
y="2.8091612"
id="rect0"
style="fill:#ffffff" />
<rect
height="30.933941"
width="30.933941"
x="2.7154145"
y="2.8091612"
id="rect6"
style="fill:#f35325" />
<rect
height="30.933941"
width="30.933941"
x="36.360054"
y="2.8091612"
id="rect8"
style="fill:#81bc06" />
<rect
height="30.933941"
width="30.933941"
x="2.7154145"
y="36.4538"
id="rect10"
style="fill:#05a6f0" />
<rect
height="30.933941"
width="30.933941"
x="36.360054"
y="36.4538"
id="rect12"
style="fill:#ffba08" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,332 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
width="51.358818"
height="47.630692"
version="1.0"
sodipodi:docname="multilayer_switch_docker.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<linearGradient
inkscape:collect="always"
id="linearGradient10123">
<stop
style="stop-color:#e4405c;stop-opacity:1;"
offset="0"
id="stop10125" />
<stop
style="stop-color:#e4405c;stop-opacity:0;"
offset="1"
id="stop10127" />
</linearGradient>
<linearGradient
id="linearGradient8331">
<stop
style="stop-color:#6e8caa;stop-opacity:1;"
offset="0"
id="stop8333" />
<stop
style="stop-color:#cfd8e9;stop-opacity:1;"
offset="1"
id="stop8335" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6603">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6605" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6607" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6587">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6589" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6591" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6587"
id="linearGradient6593"
x1="3.95626"
y1="0.64267641"
x2="-1.2664427"
y2="0.62730032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6603"
id="linearGradient6609"
x1="2.2801981"
y1="1.4519272"
x2="-0.41311559"
y2="1.4649135"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient8337"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10123"
id="linearGradient9177"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(46.099937,0,0,44.044643,-34.933093,-32.464927)"
x1="1.3990936"
y1="1.4711363"
x2="0.49966058"
y2="0.56367606" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient9199"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999" />
</defs>
<sodipodi:namedview
inkscape:window-height="940"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="7.8958335"
inkscape:cx="35.517778"
inkscape:cy="24.036017"
inkscape:window-x="0"
inkscape:window-y="35"
inkscape:current-layer="svg1998"
showgrid="false"
inkscape:window-maximized="0" />
<path
id="path11907"
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
<path
id="path11020"
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
sodipodi:nodetypes="ccccc" />
<path
id="path2037"
d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492"
style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:0.001" />
<path
id="path2041"
d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552"
style="fill:url(#linearGradient9199);fill-opacity:1;stroke:none;stroke-width:0.001" />
<path
id="path2045"
d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264"
style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:0.001" />
<path
id="path2049"
d="m 17.380994,23.789246 -11.7096633,0 0,-1.53703 -3.5916196,3.074057 3.5916196,3.423384 0,-1.513742 11.7096633,0 0,-3.446669"
style="fill:#000000;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2051"
d="M 19.767207,21.506989 L 11.329361,13.495809 L 12.534768,12.354681 L 7.7131417,12.354681 L 7.7131417,16.919191 L 8.893948,15.778064 L 17.380994,23.789246 L 19.767207,21.506989"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2053"
d="M 23.383427,21.506989 L 23.383427,10.049138 L 24.982435,10.049138 L 21.784419,6.9983684 L 18.168199,10.049138 L 19.767207,10.049138 L 19.767207,21.506989 L 23.383427,21.506989"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2055"
d="M 25.818839,23.789246 L 34.281285,15.778064 L 35.462092,16.919191 L 35.462092,12.354681 L 30.665065,12.354681 L 31.845872,13.495809 L 23.383427,21.506989 L 25.818839,23.789246"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2057"
d="M 25.818839,27.235915 L 37.872905,27.235915 L 37.872905,28.749657 L 41.120121,25.326273 L 37.872905,22.252216 L 37.872905,23.789246 L 25.818839,23.789246 L 25.818839,27.235915"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2059"
d="M 23.383427,29.51817 L 31.845872,37.529351 L 30.665065,38.693768 L 35.462092,38.321154 L 35.462092,34.129257 L 34.281285,35.270385 L 25.818839,27.235915 L 23.383427,29.51817"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2061"
d="M 19.767207,29.51817 L 19.767207,40.999311 L 18.168199,40.999311 L 21.784419,44.026792 L 24.982435,40.999311 L 23.383427,40.999311 L 23.383427,29.51817 L 19.767207,29.51817"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2063"
d="M 17.380994,27.235915 L 8.893948,35.270385 L 7.7131417,34.129257 L 7.7131417,38.693768 L 12.534768,38.693768 L 11.329361,37.529351 L 19.767207,29.51817 L 17.380994,27.235915"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2065"
d="m 17.749996,24.185146 -11.6604631,0 0,-1.537028 -3.6162195,3.05077 3.6162195,3.44667 0,-1.51374 11.6604631,0 0,-3.446672"
style="fill:#ffffff;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2067"
d="M 20.185408,21.902892 L 11.722963,13.868422 L 12.95297,12.727294 L 8.1067438,12.727294 L 8.1067438,17.315093 L 9.2875501,16.150677 L 17.749996,24.185146 L 20.185408,21.902892"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2069"
d="M 23.801628,21.902892 L 23.801628,10.421751 L 25.400638,10.421751 L 22.178019,7.3709816 L 18.561799,10.421751 L 20.185408,10.421751 L 20.185408,21.902892 L 23.801628,21.902892"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2071"
d="M 26.237042,24.185146 L 34.674887,16.150677 L 35.880293,17.315093 L 35.880293,12.727294 L 31.034067,12.727294 L 32.239475,13.868422 L 23.801628,21.902892 L 26.237042,24.185146"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2073"
d="M 26.237042,27.631818 L 38.266506,27.631818 L 38.266506,29.145558 L 41.513724,25.698888 L 38.266506,22.648118 L 38.266506,24.185146 L 26.237042,24.185146 L 26.237042,27.631818"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2075"
d="M 23.801628,29.914073 L 32.239475,37.925254 L 31.034067,39.066381 L 35.880293,38.693768 L 35.880293,34.478581 L 34.674887,35.619709 L 26.237042,27.631818 L 23.801628,29.914073"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2077"
d="M 20.185408,29.914073 L 20.185408,41.348635 L 18.561799,41.348635 L 22.178019,44.422693 L 25.400638,41.348635 L 23.801628,41.348635 L 23.801628,29.914073 L 20.185408,29.914073"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2079"
d="M 17.749996,27.631818 L 9.2875501,35.619709 L 8.1067438,34.478581 L 8.1067438,39.066381 L 12.95297,39.066381 L 11.722963,37.925254 L 20.185408,29.914073 L 17.749996,27.631818"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2081"
d="m 34.118834,25.441927 -0.04606,-0.574105 -0.04606,-0.662429 -0.09212,-0.574105 -0.09212,-0.574104 -0.138179,-0.618267 -0.18424,-0.574109 -0.230299,-0.574105 -0.18424,-0.574105 -0.276361,-0.529944 -0.276359,-0.529943 -0.322423,-0.529943 -0.36848,-0.529943 -0.368485,-0.485782 -0.414542,-0.44162 -0.414543,-0.485783 -0.414539,-0.397453 -0.506663,-0.39746 -0.4606,-0.397458 -0.506663,-0.353293 -0.506662,-0.309135 -0.59878,-0.353296 -0.506662,-0.26497 -0.598782,-0.220812 -0.598782,-0.22081 -0.552719,-0.220806 -0.644843,-0.132495 -0.552718,-0.176642 -0.690907,-0.08833 -0.598782,-0.08834 -0.644838,-0.04416 -0.598782,0 0,0 -0.644841,0 -0.598782,0.04416 -0.644843,0.08834 -0.598782,0.08833 -0.644843,0.176642 -0.59878,0.132495 -0.598782,0.220806 -0.598781,0.22081 -0.55272,0.220812 -0.506663,0.26497 -0.598782,0.353296 -0.552718,0.309135 -0.460604,0.353293 -0.506658,0.397458 -0.460605,0.39746 -0.414539,0.397453 -0.4606,0.485783 -0.368481,0.44162 -0.368481,0.485782 -0.36848,0.529943 -0.322426,0.529943 -0.276357,0.529943 -0.276364,0.529944 -0.230298,0.574105 -0.2302998,0.574105 -0.138179,0.574109 -0.1381801,0.618267 -0.138179,0.574104 -0.092116,0.574105 0,0.662429 -0.046064,0.574105 0,0 0.046064,0.574105 0,0.61827 0.092116,0.618266 0.138179,0.618267 0.1381801,0.574105 0.138179,0.574105 0.2302998,0.574105 0.230298,0.574106 0.276364,0.529941 0.276357,0.529944 0.322426,0.529943 0.36848,0.529944 0.368481,0.485781 0.368481,0.441621 0.4606,0.44162 0.414539,0.44162 0.460605,0.397458 0.506658,0.397457 0.460604,0.353296 0.552718,0.309134 0.598782,0.309132 0.506663,0.309135 0.55272,0.26497 0.598781,0.220812 0.598782,0.132477 0.59878,0.176642 0.644843,0.176641 0.598782,0.04416 0.644843,0.132495 0.598782,0.04416 0.644841,0 0,0 0.598782,0 0.644838,-0.04416 0.598782,-0.132495 0.690907,-0.04416 0.552718,-0.176641 0.644843,-0.176642 0.552719,-0.132477 0.598782,-0.220812 0.598782,-0.26497 0.506662,-0.309135 0.59878,-0.309132 0.506662,-0.309134 0.506663,-0.353296 0.4606,-0.397457 0.506663,-0.397458 0.414539,-0.44162 0.414543,-0.44162 0.414542,-0.441621 0.368477,-0.485781 0.368481,-0.529944 0.322423,-0.529943 0.276359,-0.529944 0.276361,-0.529941 0.18424,-0.574106 0.230298,-0.574105 0.18424,-0.574105 0.13818,-0.574105 0.09212,-0.618267 0.09212,-0.618266 0.04606,-0.61827 0.04606,-0.574105"
style="fill:#000000;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2083"
d="m 35.032688,26.020463 -0.04599,-0.571057 -0.04599,-0.614983 -0.09196,-0.614983 -0.04599,-0.614989 -0.183929,-0.571054 -0.183929,-0.571058 -0.183928,-0.571056 -0.229912,-0.527129 -0.275896,-0.571056 -0.275892,-0.52713 -0.321879,-0.527128 -0.321878,-0.527129 -0.413843,-0.483203 -0.413839,-0.439274 -0.36786,-0.439275 -0.459824,-0.439271 -0.505807,-0.395349 -0.459823,-0.395347 -0.505807,-0.35142 -0.505809,-0.30749 -0.551772,-0.307493 -0.551792,-0.307491 -0.597771,-0.263565 -0.551788,-0.219637 -0.597772,-0.175704 -0.597771,-0.131772 -0.597776,-0.175704 -0.643751,-0.08787 -0.597773,-0.08786 -0.643755,-0.04393 -0.643756,0 0,0 -0.643753,0 -0.59777,0.04393 -0.597771,0.08786 -0.643755,0.08787 -0.597773,0.175704 -0.597773,0.131772 -0.643754,0.175704 -0.551788,0.219637 -0.551792,0.263565 -0.597771,0.307491 -0.505807,0.307493 -0.551789,0.30749 -0.505808,0.35142 -0.505807,0.395347 -0.459825,0.395349 -0.413838,0.439271 -0.45983,0.439275 -0.367856,0.439274 -0.367859,0.483203 -0.367859,0.527129 -0.321879,0.527128 -0.275892,0.52713 -0.275897,0.571056 -0.22991,0.527129 -0.183929,0.571056 -0.18393,0.571058 -0.137946,0.571054 -0.09197,0.614989 -0.09197,0.614983 -0.04598,0.614983 0,0.571057 0,0 0,0.614983 0.04598,0.614982 0.09197,0.52713 0.09197,0.614987 0.137946,0.614983 0.18393,0.571057 0.183929,0.571056 0.22991,0.571056 0.275897,0.527128 0.275892,0.52713 0.321879,0.527129 0.367859,0.483203 0.367859,0.527127 0.367856,0.439276 0.45983,0.439274 0.413838,0.439276 0.459825,0.395343 0.505807,0.351421 0.505808,0.395349 0.551789,0.307489 0.505807,0.307494 0.597771,0.307493 0.551792,0.219636 0.551788,0.219635 0.643754,0.219639 0.597773,0.175704 0.597773,0.131773 0.643755,0.08786 0.597771,0.08787 0.59777,0.04393 0.643753,0 0,0 0.643756,0 0.643755,-0.04393 0.597773,-0.08787 0.643751,-0.08786 0.597776,-0.131773 0.597771,-0.175704 0.597772,-0.219639 0.551788,-0.219635 0.597771,-0.219636 0.551792,-0.307493 0.551788,-0.307494 0.505809,-0.307489 0.505807,-0.395349 0.459823,-0.351421 0.505807,-0.395343 0.459824,-0.439276 0.36786,-0.439274 0.413839,-0.439276 0.413843,-0.527127 0.321878,-0.483203 0.321879,-0.527129 0.275892,-0.52713 0.275896,-0.527128 0.229912,-0.571056 0.183928,-0.571056 0.183929,-0.571057 0.183929,-0.614983 0.04599,-0.614987 0.09196,-0.52713 0.04599,-0.614982 0.04599,-0.614983"
style="fill:#ffffff;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2085"
d="m 34.677809,25.806162 -0.04611,-0.616625 0,-0.616628 -0.0922,-0.57258 -0.138299,-0.616626 -0.138299,-0.57258 -0.138299,-0.572579 -0.230499,-0.572581 -0.230504,-0.572578 -0.230498,-0.528537 -0.276597,-0.528537 -0.368799,-0.528536 -0.3688,-0.528535 -0.322694,-0.484491 -0.414898,-0.440449 -0.4149,-0.440446 -0.460999,-0.440448 -0.460999,-0.396402 -0.460999,-0.396399 -0.5071,-0.35236 -0.553201,-0.352357 -0.553197,-0.308311 -0.5071,-0.26427 -0.5993,-0.264265 -0.599298,-0.220225 -0.599299,-0.220222 -0.599299,-0.132126 -0.599299,-0.132143 -0.645402,-0.0881 -0.599297,-0.0881 -0.645398,-0.04406 -0.599297,0 0,0 -0.645401,0 -0.5993,0.04406 -0.6454,0.0881 -0.645401,0.0881 -0.599298,0.132143 -0.599299,0.132126 -0.5993,0.220222 -0.599298,0.220225 -0.553198,0.264265 -0.553203,0.26427 -0.553194,0.308311 -0.553199,0.352357 -0.461002,0.35236 -0.507096,0.396399 -0.461003,0.396402 -0.414898,0.440448 -0.460998,0.440446 -0.414901,0.440449 -0.322698,0.484491 -0.3688,0.528535 -0.368799,0.528536 -0.2305,0.528537 -0.276599,0.528537 -0.230502,0.572578 -0.230498,0.572581 -0.138299,0.572579 -0.138299,0.57258 -0.1382985,0.616626 -0.09221,0.57258 0,0.616628 -0.0461,0.616625 0,0 0.0461,0.572579 0,0.616625 0.09221,0.616624 0.1382985,0.57258 0.138299,0.616625 0.138299,0.572585 0.230498,0.57258 0.230502,0.528536 0.276599,0.57258 0.2305,0.528537 0.368799,0.528537 0.3688,0.484489 0.322698,0.484493 0.414901,0.440442 0.460998,0.484492 0.414898,0.396404 0.461003,0.440447 0.507096,0.352358 0.461002,0.396399 0.553199,0.308313 0.553194,0.308315 0.553203,0.30831 0.553198,0.220226 0.599298,0.220223 0.5993,0.220221 0.599299,0.132144 0.599298,0.132143 0.645401,0.132125 0.6454,0.0881 0.5993,0 0.645401,0.04406 0,0 0.599297,-0.04406 0.645398,0 0.599297,-0.0881 0.645402,-0.132125 0.599299,-0.132143 0.599299,-0.132144 0.599299,-0.220221 0.599298,-0.220223 0.5993,-0.220226 0.5071,-0.30831 0.553197,-0.308315 0.553201,-0.308313 0.5071,-0.396399 0.460999,-0.352358 0.460999,-0.440447 0.460999,-0.396404 0.4149,-0.484492 0.414898,-0.440442 0.322702,-0.484493 0.3688,-0.484489 0.3688,-0.528537 0.276596,-0.528537 0.230498,-0.57258 0.230504,-0.528536 0.230499,-0.57258 0.138299,-0.572585 0.138299,-0.616625 0.138299,-0.57258 0.0922,-0.616624 0,-0.616625 0.04611,-0.572579"
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<image
y="18.196489"
x="9.4765692"
id="image4051"
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTJgzxLine truncated
height="14.351258"
width="24.804121" />
</svg>

After

Width:  |  Height:  |  Size: 53 KiB

@@ -0,0 +1,344 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
width="51.358818"
height="47.630692"
version="1.0"
sodipodi:docname="multilayer_switch_red_docker.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<linearGradient
id="linearGradient6294">
<stop
style="stop-color:#2f7b2f;stop-opacity:1;"
offset="0"
id="stop6296" />
<stop
style="stop-color:#533221;stop-opacity:0;"
offset="1"
id="stop6298" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient10123">
<stop
style="stop-color:#e4405c;stop-opacity:1;"
offset="0"
id="stop10125" />
<stop
style="stop-color:#e4405c;stop-opacity:0;"
offset="1"
id="stop10127" />
</linearGradient>
<linearGradient
id="linearGradient8331">
<stop
style="stop-color:#6e8caa;stop-opacity:1;"
offset="0"
id="stop8333" />
<stop
style="stop-color:#cfd8e9;stop-opacity:1;"
offset="1"
id="stop8335" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6603">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6605" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6607" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6587">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6589" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6591" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6587"
id="linearGradient6593"
x1="3.95626"
y1="0.64267641"
x2="-1.2664427"
y2="0.62730032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6603"
id="linearGradient6609"
x1="2.2801981"
y1="1.4519272"
x2="-0.41311559"
y2="1.4649135"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient8337"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10123"
id="linearGradient9177"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(46.099937,0,0,44.044643,-34.933093,-32.464927)"
x1="1.3990936"
y1="1.4711363"
x2="0.49966058"
y2="0.56367606" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6294"
id="linearGradient6300"
x1="-0.028418806"
y1="2.6532845"
x2="75.554962"
y2="2.8541231"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,-1,49.993892,5.306569)" />
</defs>
<sodipodi:namedview
inkscape:window-height="940"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="7.8958335"
inkscape:cx="19.474194"
inkscape:cy="23.998173"
inkscape:window-x="0"
inkscape:window-y="35"
inkscape:current-layer="svg1998"
showgrid="false"
inkscape:window-maximized="0" />
<path
id="path11907"
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
<path
id="path11020"
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
sodipodi:nodetypes="ccccc" />
<path
id="path2037"
d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492"
style="fill:#40814a;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
<path
id="path2041"
d="M 50.022311,0.14181376 44.395643,5.1887393 -0.02841881,5.1647285 5.6475802,0.11782966 50.022311,0.14181376"
style="fill:url(#linearGradient6300);fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2045"
d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264"
style="fill:#347b21;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
<path
id="path2049"
d="m 17.380994,23.789246 -11.7096633,0 0,-1.53703 -3.5916196,3.074057 3.5916196,3.423384 0,-1.513742 11.7096633,0 0,-3.446669"
style="fill:#000000;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2051"
d="M 19.767207,21.506989 L 11.329361,13.495809 L 12.534768,12.354681 L 7.7131417,12.354681 L 7.7131417,16.919191 L 8.893948,15.778064 L 17.380994,23.789246 L 19.767207,21.506989"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2053"
d="M 23.383427,21.506989 L 23.383427,10.049138 L 24.982435,10.049138 L 21.784419,6.9983684 L 18.168199,10.049138 L 19.767207,10.049138 L 19.767207,21.506989 L 23.383427,21.506989"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2055"
d="M 25.818839,23.789246 L 34.281285,15.778064 L 35.462092,16.919191 L 35.462092,12.354681 L 30.665065,12.354681 L 31.845872,13.495809 L 23.383427,21.506989 L 25.818839,23.789246"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2057"
d="M 25.818839,27.235915 L 37.872905,27.235915 L 37.872905,28.749657 L 41.120121,25.326273 L 37.872905,22.252216 L 37.872905,23.789246 L 25.818839,23.789246 L 25.818839,27.235915"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2059"
d="M 23.383427,29.51817 L 31.845872,37.529351 L 30.665065,38.693768 L 35.462092,38.321154 L 35.462092,34.129257 L 34.281285,35.270385 L 25.818839,27.235915 L 23.383427,29.51817"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2061"
d="M 19.767207,29.51817 L 19.767207,40.999311 L 18.168199,40.999311 L 21.784419,44.026792 L 24.982435,40.999311 L 23.383427,40.999311 L 23.383427,29.51817 L 19.767207,29.51817"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2063"
d="M 17.380994,27.235915 L 8.893948,35.270385 L 7.7131417,34.129257 L 7.7131417,38.693768 L 12.534768,38.693768 L 11.329361,37.529351 L 19.767207,29.51817 L 17.380994,27.235915"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2065"
d="m 17.749996,24.185146 -11.6604631,0 0,-1.537028 -3.6162195,3.05077 3.6162195,3.44667 0,-1.51374 11.6604631,0 0,-3.446672"
style="fill:#ffffff;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2067"
d="M 20.185408,21.902892 L 11.722963,13.868422 L 12.95297,12.727294 L 8.1067438,12.727294 L 8.1067438,17.315093 L 9.2875501,16.150677 L 17.749996,24.185146 L 20.185408,21.902892"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2069"
d="M 23.801628,21.902892 L 23.801628,10.421751 L 25.400638,10.421751 L 22.178019,7.3709816 L 18.561799,10.421751 L 20.185408,10.421751 L 20.185408,21.902892 L 23.801628,21.902892"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2071"
d="M 26.237042,24.185146 L 34.674887,16.150677 L 35.880293,17.315093 L 35.880293,12.727294 L 31.034067,12.727294 L 32.239475,13.868422 L 23.801628,21.902892 L 26.237042,24.185146"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2073"
d="M 26.237042,27.631818 L 38.266506,27.631818 L 38.266506,29.145558 L 41.513724,25.698888 L 38.266506,22.648118 L 38.266506,24.185146 L 26.237042,24.185146 L 26.237042,27.631818"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2075"
d="M 23.801628,29.914073 L 32.239475,37.925254 L 31.034067,39.066381 L 35.880293,38.693768 L 35.880293,34.478581 L 34.674887,35.619709 L 26.237042,27.631818 L 23.801628,29.914073"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2077"
d="M 20.185408,29.914073 L 20.185408,41.348635 L 18.561799,41.348635 L 22.178019,44.422693 L 25.400638,41.348635 L 23.801628,41.348635 L 23.801628,29.914073 L 20.185408,29.914073"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2079"
d="M 17.749996,27.631818 L 9.2875501,35.619709 L 8.1067438,34.478581 L 8.1067438,39.066381 L 12.95297,39.066381 L 11.722963,37.925254 L 20.185408,29.914073 L 17.749996,27.631818"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2081"
d="m 34.118834,25.441927 -0.04606,-0.574105 -0.04606,-0.662429 -0.09212,-0.574105 -0.09212,-0.574104 -0.138179,-0.618267 -0.18424,-0.574109 -0.230299,-0.574105 -0.18424,-0.574105 -0.276361,-0.529944 -0.276359,-0.529943 -0.322423,-0.529943 -0.36848,-0.529943 -0.368485,-0.485782 -0.414542,-0.44162 -0.414543,-0.485783 -0.414539,-0.397453 -0.506663,-0.39746 -0.4606,-0.397458 -0.506663,-0.353293 -0.506662,-0.309135 -0.59878,-0.353296 -0.506662,-0.26497 -0.598782,-0.220812 -0.598782,-0.22081 -0.552719,-0.220806 -0.644843,-0.132495 -0.552718,-0.176642 -0.690907,-0.08833 -0.598782,-0.08834 -0.644838,-0.04416 -0.598782,0 0,0 -0.644841,0 -0.598782,0.04416 -0.644843,0.08834 -0.598782,0.08833 -0.644843,0.176642 -0.59878,0.132495 -0.598782,0.220806 -0.598781,0.22081 -0.55272,0.220812 -0.506663,0.26497 -0.598782,0.353296 -0.552718,0.309135 -0.460604,0.353293 -0.506658,0.397458 -0.460605,0.39746 -0.414539,0.397453 -0.4606,0.485783 -0.368481,0.44162 -0.368481,0.485782 -0.36848,0.529943 -0.322426,0.529943 -0.276357,0.529943 -0.276364,0.529944 -0.230298,0.574105 -0.2302998,0.574105 -0.138179,0.574109 -0.1381801,0.618267 -0.138179,0.574104 -0.092116,0.574105 0,0.662429 -0.046064,0.574105 0,0 0.046064,0.574105 0,0.61827 0.092116,0.618266 0.138179,0.618267 0.1381801,0.574105 0.138179,0.574105 0.2302998,0.574105 0.230298,0.574106 0.276364,0.529941 0.276357,0.529944 0.322426,0.529943 0.36848,0.529944 0.368481,0.485781 0.368481,0.441621 0.4606,0.44162 0.414539,0.44162 0.460605,0.397458 0.506658,0.397457 0.460604,0.353296 0.552718,0.309134 0.598782,0.309132 0.506663,0.309135 0.55272,0.26497 0.598781,0.220812 0.598782,0.132477 0.59878,0.176642 0.644843,0.176641 0.598782,0.04416 0.644843,0.132495 0.598782,0.04416 0.644841,0 0,0 0.598782,0 0.644838,-0.04416 0.598782,-0.132495 0.690907,-0.04416 0.552718,-0.176641 0.644843,-0.176642 0.552719,-0.132477 0.598782,-0.220812 0.598782,-0.26497 0.506662,-0.309135 0.59878,-0.309132 0.506662,-0.309134 0.506663,-0.353296 0.4606,-0.397457 0.506663,-0.397458 0.414539,-0.44162 0.414543,-0.44162 0.414542,-0.441621 0.368477,-0.485781 0.368481,-0.529944 0.322423,-0.529943 0.276359,-0.529944 0.276361,-0.529941 0.18424,-0.574106 0.230298,-0.574105 0.18424,-0.574105 0.13818,-0.574105 0.09212,-0.618267 0.09212,-0.618266 0.04606,-0.61827 0.04606,-0.574105"
style="fill:#000000;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2083"
d="m 35.032688,26.020463 -0.04599,-0.571057 -0.04599,-0.614983 -0.09196,-0.614983 -0.04599,-0.614989 -0.183929,-0.571054 -0.183929,-0.571058 -0.183928,-0.571056 -0.229912,-0.527129 -0.275896,-0.571056 -0.275892,-0.52713 -0.321879,-0.527128 -0.321878,-0.527129 -0.413843,-0.483203 -0.413839,-0.439274 -0.36786,-0.439275 -0.459824,-0.439271 -0.505807,-0.395349 -0.459823,-0.395347 -0.505807,-0.35142 -0.505809,-0.30749 -0.551772,-0.307493 -0.551792,-0.307491 -0.597771,-0.263565 -0.551788,-0.219637 -0.597772,-0.175704 -0.597771,-0.131772 -0.597776,-0.175704 -0.643751,-0.08787 -0.597773,-0.08786 -0.643755,-0.04393 -0.643756,0 0,0 -0.643753,0 -0.59777,0.04393 -0.597771,0.08786 -0.643755,0.08787 -0.597773,0.175704 -0.597773,0.131772 -0.643754,0.175704 -0.551788,0.219637 -0.551792,0.263565 -0.597771,0.307491 -0.505807,0.307493 -0.551789,0.30749 -0.505808,0.35142 -0.505807,0.395347 -0.459825,0.395349 -0.413838,0.439271 -0.45983,0.439275 -0.367856,0.439274 -0.367859,0.483203 -0.367859,0.527129 -0.321879,0.527128 -0.275892,0.52713 -0.275897,0.571056 -0.22991,0.527129 -0.183929,0.571056 -0.18393,0.571058 -0.137946,0.571054 -0.09197,0.614989 -0.09197,0.614983 -0.04598,0.614983 0,0.571057 0,0 0,0.614983 0.04598,0.614982 0.09197,0.52713 0.09197,0.614987 0.137946,0.614983 0.18393,0.571057 0.183929,0.571056 0.22991,0.571056 0.275897,0.527128 0.275892,0.52713 0.321879,0.527129 0.367859,0.483203 0.367859,0.527127 0.367856,0.439276 0.45983,0.439274 0.413838,0.439276 0.459825,0.395343 0.505807,0.351421 0.505808,0.395349 0.551789,0.307489 0.505807,0.307494 0.597771,0.307493 0.551792,0.219636 0.551788,0.219635 0.643754,0.219639 0.597773,0.175704 0.597773,0.131773 0.643755,0.08786 0.597771,0.08787 0.59777,0.04393 0.643753,0 0,0 0.643756,0 0.643755,-0.04393 0.597773,-0.08787 0.643751,-0.08786 0.597776,-0.131773 0.597771,-0.175704 0.597772,-0.219639 0.551788,-0.219635 0.597771,-0.219636 0.551792,-0.307493 0.551788,-0.307494 0.505809,-0.307489 0.505807,-0.395349 0.459823,-0.351421 0.505807,-0.395343 0.459824,-0.439276 0.36786,-0.439274 0.413839,-0.439276 0.413843,-0.527127 0.321878,-0.483203 0.321879,-0.527129 0.275892,-0.52713 0.275896,-0.527128 0.229912,-0.571056 0.183928,-0.571056 0.183929,-0.571057 0.183929,-0.614983 0.04599,-0.614987 0.09196,-0.52713 0.04599,-0.614982 0.04599,-0.614983"
style="fill:#ffffff;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2085"
d="m 34.677809,25.806162 -0.04611,-0.616625 0,-0.616628 -0.0922,-0.57258 -0.138299,-0.616626 -0.138299,-0.57258 -0.138299,-0.572579 -0.230499,-0.572581 -0.230504,-0.572578 -0.230498,-0.528537 -0.276597,-0.528537 -0.368799,-0.528536 -0.3688,-0.528535 -0.322694,-0.484491 -0.414898,-0.440449 -0.4149,-0.440446 -0.460999,-0.440448 -0.460999,-0.396402 -0.460999,-0.396399 -0.5071,-0.35236 -0.553201,-0.352357 -0.553197,-0.308311 -0.5071,-0.26427 -0.5993,-0.264265 -0.599298,-0.220225 -0.599299,-0.220222 -0.599299,-0.132126 -0.599299,-0.132143 -0.645402,-0.0881 -0.599297,-0.0881 -0.645398,-0.04406 -0.599297,0 0,0 -0.645401,0 -0.5993,0.04406 -0.6454,0.0881 -0.645401,0.0881 -0.599298,0.132143 -0.599299,0.132126 -0.5993,0.220222 -0.599298,0.220225 -0.553198,0.264265 -0.553203,0.26427 -0.553194,0.308311 -0.553199,0.352357 -0.461002,0.35236 -0.507096,0.396399 -0.461003,0.396402 -0.414898,0.440448 -0.460998,0.440446 -0.414901,0.440449 -0.322698,0.484491 -0.3688,0.528535 -0.368799,0.528536 -0.2305,0.528537 -0.276599,0.528537 -0.230502,0.572578 -0.230498,0.572581 -0.138299,0.572579 -0.138299,0.57258 -0.1382985,0.616626 -0.09221,0.57258 0,0.616628 -0.0461,0.616625 0,0 0.0461,0.572579 0,0.616625 0.09221,0.616624 0.1382985,0.57258 0.138299,0.616625 0.138299,0.572585 0.230498,0.57258 0.230502,0.528536 0.276599,0.57258 0.2305,0.528537 0.368799,0.528537 0.3688,0.484489 0.322698,0.484493 0.414901,0.440442 0.460998,0.484492 0.414898,0.396404 0.461003,0.440447 0.507096,0.352358 0.461002,0.396399 0.553199,0.308313 0.553194,0.308315 0.553203,0.30831 0.553198,0.220226 0.599298,0.220223 0.5993,0.220221 0.599299,0.132144 0.599298,0.132143 0.645401,0.132125 0.6454,0.0881 0.5993,0 0.645401,0.04406 0,0 0.599297,-0.04406 0.645398,0 0.599297,-0.0881 0.645402,-0.132125 0.599299,-0.132143 0.599299,-0.132144 0.599299,-0.220221 0.599298,-0.220223 0.5993,-0.220226 0.5071,-0.30831 0.553197,-0.308315 0.553201,-0.308313 0.5071,-0.396399 0.460999,-0.352358 0.460999,-0.440447 0.460999,-0.396404 0.4149,-0.484492 0.414898,-0.440442 0.322702,-0.484493 0.3688,-0.484489 0.3688,-0.528537 0.276596,-0.528537 0.230498,-0.57258 0.230504,-0.528536 0.230499,-0.57258 0.138299,-0.572585 0.138299,-0.616625 0.138299,-0.57258 0.0922,-0.616624 0,-0.616625 0.04611,-0.572579"
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<image
y="18.196489"
x="9.4765692"
id="image4051"
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTJgzxLine truncated
height="14.351258"
width="24.804121" />
</svg>

After

Width:  |  Height:  |  Size: 54 KiB

@@ -0,0 +1,344 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg1998"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
width="51.358818"
height="47.630692"
version="1.0"
sodipodi:docname="multilayer_switch_green_docker.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2003">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Jeremy Grossmann</dc:title>
</cc:Agent>
</dc:creator>
<dc:publisher>
<cc:Agent>
<dc:title>GNS-3</dc:title>
</cc:Agent>
</dc:publisher>
<dc:description>Created for the GNS-3 project (www.gns3.net)</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
<cc:requires
rdf:resource="http://web.resource.org/cc/SourceCode" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs2001">
<linearGradient
id="linearGradient6294">
<stop
style="stop-color:#ff3221;stop-opacity:1;"
offset="0"
id="stop6296" />
<stop
style="stop-color:#ff3221;stop-opacity:0;"
offset="1"
id="stop6298" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient10123">
<stop
style="stop-color:#e4405c;stop-opacity:1;"
offset="0"
id="stop10125" />
<stop
style="stop-color:#e4405c;stop-opacity:0;"
offset="1"
id="stop10127" />
</linearGradient>
<linearGradient
id="linearGradient8331">
<stop
style="stop-color:#6e8caa;stop-opacity:1;"
offset="0"
id="stop8333" />
<stop
style="stop-color:#cfd8e9;stop-opacity:1;"
offset="1"
id="stop8335" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6603">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6605" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6607" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient6587">
<stop
style="stop-color:#506eaa;stop-opacity:1;"
offset="0"
id="stop6589" />
<stop
style="stop-color:#506eaa;stop-opacity:0;"
offset="1"
id="stop6591" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path11918"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path11921"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible">
<path
id="path11936"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6587"
id="linearGradient6593"
x1="3.95626"
y1="0.64267641"
x2="-1.2664427"
y2="0.62730032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942481e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6603"
id="linearGradient6609"
x1="2.2801981"
y1="1.4519272"
x2="-0.41311559"
y2="1.4649135"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.060042,0,0,1.074658,-3.942482e-3,-0.356572)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8331"
id="linearGradient8337"
x1="2.1178279"
y1="0.30649999"
x2="-0.4954865"
y2="0.30649999"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.117962,0,0,1.035008,-4.0973e-2,-6.788682e-3)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10123"
id="linearGradient9177"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(46.099937,0,0,44.044643,-34.933093,-32.464927)"
x1="1.3990936"
y1="1.4711363"
x2="0.49966058"
y2="0.56367606" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6294"
id="linearGradient6300"
x1="-0.028418806"
y1="2.6532845"
x2="98.225143"
y2="2.727474"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,-1,49.993892,5.306569)" />
</defs>
<sodipodi:namedview
inkscape:window-height="940"
inkscape:window-width="1280"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="7.8958335"
inkscape:cx="23.891466"
inkscape:cy="23.998173"
inkscape:window-x="0"
inkscape:window-y="35"
inkscape:current-layer="svg1998"
showgrid="false"
inkscape:window-maximized="0" />
<path
id="path11907"
d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001" />
<path
id="path11020"
d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672"
style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"
sodipodi:nodetypes="ccccc" />
<path
id="path2037"
d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492"
style="fill:#ff494a;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
<path
id="path2041"
d="M 50.022311,0.14181376 44.395643,5.1887393 -0.02841881,5.1647285 5.6475802,0.11782966 50.022311,0.14181376"
style="fill:url(#linearGradient6300);fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2045"
d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264"
style="fill:#ff3221;fill-opacity:1;stroke:none;stroke-width:0.00100000000000000" />
<path
id="path2049"
d="m 17.380994,23.789246 -11.7096633,0 0,-1.53703 -3.5916196,3.074057 3.5916196,3.423384 0,-1.513742 11.7096633,0 0,-3.446669"
style="fill:#000000;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2051"
d="M 19.767207,21.506989 L 11.329361,13.495809 L 12.534768,12.354681 L 7.7131417,12.354681 L 7.7131417,16.919191 L 8.893948,15.778064 L 17.380994,23.789246 L 19.767207,21.506989"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2053"
d="M 23.383427,21.506989 L 23.383427,10.049138 L 24.982435,10.049138 L 21.784419,6.9983684 L 18.168199,10.049138 L 19.767207,10.049138 L 19.767207,21.506989 L 23.383427,21.506989"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2055"
d="M 25.818839,23.789246 L 34.281285,15.778064 L 35.462092,16.919191 L 35.462092,12.354681 L 30.665065,12.354681 L 31.845872,13.495809 L 23.383427,21.506989 L 25.818839,23.789246"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2057"
d="M 25.818839,27.235915 L 37.872905,27.235915 L 37.872905,28.749657 L 41.120121,25.326273 L 37.872905,22.252216 L 37.872905,23.789246 L 25.818839,23.789246 L 25.818839,27.235915"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2059"
d="M 23.383427,29.51817 L 31.845872,37.529351 L 30.665065,38.693768 L 35.462092,38.321154 L 35.462092,34.129257 L 34.281285,35.270385 L 25.818839,27.235915 L 23.383427,29.51817"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2061"
d="M 19.767207,29.51817 L 19.767207,40.999311 L 18.168199,40.999311 L 21.784419,44.026792 L 24.982435,40.999311 L 23.383427,40.999311 L 23.383427,29.51817 L 19.767207,29.51817"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2063"
d="M 17.380994,27.235915 L 8.893948,35.270385 L 7.7131417,34.129257 L 7.7131417,38.693768 L 12.534768,38.693768 L 11.329361,37.529351 L 19.767207,29.51817 L 17.380994,27.235915"
style="fill:#000000;stroke:none;stroke-width:0.001" />
<path
id="path2065"
d="m 17.749996,24.185146 -11.6604631,0 0,-1.537028 -3.6162195,3.05077 3.6162195,3.44667 0,-1.51374 11.6604631,0 0,-3.446672"
style="fill:#ffffff;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2067"
d="M 20.185408,21.902892 L 11.722963,13.868422 L 12.95297,12.727294 L 8.1067438,12.727294 L 8.1067438,17.315093 L 9.2875501,16.150677 L 17.749996,24.185146 L 20.185408,21.902892"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2069"
d="M 23.801628,21.902892 L 23.801628,10.421751 L 25.400638,10.421751 L 22.178019,7.3709816 L 18.561799,10.421751 L 20.185408,10.421751 L 20.185408,21.902892 L 23.801628,21.902892"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2071"
d="M 26.237042,24.185146 L 34.674887,16.150677 L 35.880293,17.315093 L 35.880293,12.727294 L 31.034067,12.727294 L 32.239475,13.868422 L 23.801628,21.902892 L 26.237042,24.185146"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2073"
d="M 26.237042,27.631818 L 38.266506,27.631818 L 38.266506,29.145558 L 41.513724,25.698888 L 38.266506,22.648118 L 38.266506,24.185146 L 26.237042,24.185146 L 26.237042,27.631818"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2075"
d="M 23.801628,29.914073 L 32.239475,37.925254 L 31.034067,39.066381 L 35.880293,38.693768 L 35.880293,34.478581 L 34.674887,35.619709 L 26.237042,27.631818 L 23.801628,29.914073"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2077"
d="M 20.185408,29.914073 L 20.185408,41.348635 L 18.561799,41.348635 L 22.178019,44.422693 L 25.400638,41.348635 L 23.801628,41.348635 L 23.801628,29.914073 L 20.185408,29.914073"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2079"
d="M 17.749996,27.631818 L 9.2875501,35.619709 L 8.1067438,34.478581 L 8.1067438,39.066381 L 12.95297,39.066381 L 11.722963,37.925254 L 20.185408,29.914073 L 17.749996,27.631818"
style="fill:#ffffff;stroke:none;stroke-width:0.001" />
<path
id="path2081"
d="m 34.118834,25.441927 -0.04606,-0.574105 -0.04606,-0.662429 -0.09212,-0.574105 -0.09212,-0.574104 -0.138179,-0.618267 -0.18424,-0.574109 -0.230299,-0.574105 -0.18424,-0.574105 -0.276361,-0.529944 -0.276359,-0.529943 -0.322423,-0.529943 -0.36848,-0.529943 -0.368485,-0.485782 -0.414542,-0.44162 -0.414543,-0.485783 -0.414539,-0.397453 -0.506663,-0.39746 -0.4606,-0.397458 -0.506663,-0.353293 -0.506662,-0.309135 -0.59878,-0.353296 -0.506662,-0.26497 -0.598782,-0.220812 -0.598782,-0.22081 -0.552719,-0.220806 -0.644843,-0.132495 -0.552718,-0.176642 -0.690907,-0.08833 -0.598782,-0.08834 -0.644838,-0.04416 -0.598782,0 0,0 -0.644841,0 -0.598782,0.04416 -0.644843,0.08834 -0.598782,0.08833 -0.644843,0.176642 -0.59878,0.132495 -0.598782,0.220806 -0.598781,0.22081 -0.55272,0.220812 -0.506663,0.26497 -0.598782,0.353296 -0.552718,0.309135 -0.460604,0.353293 -0.506658,0.397458 -0.460605,0.39746 -0.414539,0.397453 -0.4606,0.485783 -0.368481,0.44162 -0.368481,0.485782 -0.36848,0.529943 -0.322426,0.529943 -0.276357,0.529943 -0.276364,0.529944 -0.230298,0.574105 -0.2302998,0.574105 -0.138179,0.574109 -0.1381801,0.618267 -0.138179,0.574104 -0.092116,0.574105 0,0.662429 -0.046064,0.574105 0,0 0.046064,0.574105 0,0.61827 0.092116,0.618266 0.138179,0.618267 0.1381801,0.574105 0.138179,0.574105 0.2302998,0.574105 0.230298,0.574106 0.276364,0.529941 0.276357,0.529944 0.322426,0.529943 0.36848,0.529944 0.368481,0.485781 0.368481,0.441621 0.4606,0.44162 0.414539,0.44162 0.460605,0.397458 0.506658,0.397457 0.460604,0.353296 0.552718,0.309134 0.598782,0.309132 0.506663,0.309135 0.55272,0.26497 0.598781,0.220812 0.598782,0.132477 0.59878,0.176642 0.644843,0.176641 0.598782,0.04416 0.644843,0.132495 0.598782,0.04416 0.644841,0 0,0 0.598782,0 0.644838,-0.04416 0.598782,-0.132495 0.690907,-0.04416 0.552718,-0.176641 0.644843,-0.176642 0.552719,-0.132477 0.598782,-0.220812 0.598782,-0.26497 0.506662,-0.309135 0.59878,-0.309132 0.506662,-0.309134 0.506663,-0.353296 0.4606,-0.397457 0.506663,-0.397458 0.414539,-0.44162 0.414543,-0.44162 0.414542,-0.441621 0.368477,-0.485781 0.368481,-0.529944 0.322423,-0.529943 0.276359,-0.529944 0.276361,-0.529941 0.18424,-0.574106 0.230298,-0.574105 0.18424,-0.574105 0.13818,-0.574105 0.09212,-0.618267 0.09212,-0.618266 0.04606,-0.61827 0.04606,-0.574105"
style="fill:#000000;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2083"
d="m 35.032688,26.020463 -0.04599,-0.571057 -0.04599,-0.614983 -0.09196,-0.614983 -0.04599,-0.614989 -0.183929,-0.571054 -0.183929,-0.571058 -0.183928,-0.571056 -0.229912,-0.527129 -0.275896,-0.571056 -0.275892,-0.52713 -0.321879,-0.527128 -0.321878,-0.527129 -0.413843,-0.483203 -0.413839,-0.439274 -0.36786,-0.439275 -0.459824,-0.439271 -0.505807,-0.395349 -0.459823,-0.395347 -0.505807,-0.35142 -0.505809,-0.30749 -0.551772,-0.307493 -0.551792,-0.307491 -0.597771,-0.263565 -0.551788,-0.219637 -0.597772,-0.175704 -0.597771,-0.131772 -0.597776,-0.175704 -0.643751,-0.08787 -0.597773,-0.08786 -0.643755,-0.04393 -0.643756,0 0,0 -0.643753,0 -0.59777,0.04393 -0.597771,0.08786 -0.643755,0.08787 -0.597773,0.175704 -0.597773,0.131772 -0.643754,0.175704 -0.551788,0.219637 -0.551792,0.263565 -0.597771,0.307491 -0.505807,0.307493 -0.551789,0.30749 -0.505808,0.35142 -0.505807,0.395347 -0.459825,0.395349 -0.413838,0.439271 -0.45983,0.439275 -0.367856,0.439274 -0.367859,0.483203 -0.367859,0.527129 -0.321879,0.527128 -0.275892,0.52713 -0.275897,0.571056 -0.22991,0.527129 -0.183929,0.571056 -0.18393,0.571058 -0.137946,0.571054 -0.09197,0.614989 -0.09197,0.614983 -0.04598,0.614983 0,0.571057 0,0 0,0.614983 0.04598,0.614982 0.09197,0.52713 0.09197,0.614987 0.137946,0.614983 0.18393,0.571057 0.183929,0.571056 0.22991,0.571056 0.275897,0.527128 0.275892,0.52713 0.321879,0.527129 0.367859,0.483203 0.367859,0.527127 0.367856,0.439276 0.45983,0.439274 0.413838,0.439276 0.459825,0.395343 0.505807,0.351421 0.505808,0.395349 0.551789,0.307489 0.505807,0.307494 0.597771,0.307493 0.551792,0.219636 0.551788,0.219635 0.643754,0.219639 0.597773,0.175704 0.597773,0.131773 0.643755,0.08786 0.597771,0.08787 0.59777,0.04393 0.643753,0 0,0 0.643756,0 0.643755,-0.04393 0.597773,-0.08787 0.643751,-0.08786 0.597776,-0.131773 0.597771,-0.175704 0.597772,-0.219639 0.551788,-0.219635 0.597771,-0.219636 0.551792,-0.307493 0.551788,-0.307494 0.505809,-0.307489 0.505807,-0.395349 0.459823,-0.351421 0.505807,-0.395343 0.459824,-0.439276 0.36786,-0.439274 0.413839,-0.439276 0.413843,-0.527127 0.321878,-0.483203 0.321879,-0.527129 0.275892,-0.52713 0.275896,-0.527128 0.229912,-0.571056 0.183928,-0.571056 0.183929,-0.571057 0.183929,-0.614983 0.04599,-0.614987 0.09196,-0.52713 0.04599,-0.614982 0.04599,-0.614983"
style="fill:#ffffff;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path2085"
d="m 34.677809,25.806162 -0.04611,-0.616625 0,-0.616628 -0.0922,-0.57258 -0.138299,-0.616626 -0.138299,-0.57258 -0.138299,-0.572579 -0.230499,-0.572581 -0.230504,-0.572578 -0.230498,-0.528537 -0.276597,-0.528537 -0.368799,-0.528536 -0.3688,-0.528535 -0.322694,-0.484491 -0.414898,-0.440449 -0.4149,-0.440446 -0.460999,-0.440448 -0.460999,-0.396402 -0.460999,-0.396399 -0.5071,-0.35236 -0.553201,-0.352357 -0.553197,-0.308311 -0.5071,-0.26427 -0.5993,-0.264265 -0.599298,-0.220225 -0.599299,-0.220222 -0.599299,-0.132126 -0.599299,-0.132143 -0.645402,-0.0881 -0.599297,-0.0881 -0.645398,-0.04406 -0.599297,0 0,0 -0.645401,0 -0.5993,0.04406 -0.6454,0.0881 -0.645401,0.0881 -0.599298,0.132143 -0.599299,0.132126 -0.5993,0.220222 -0.599298,0.220225 -0.553198,0.264265 -0.553203,0.26427 -0.553194,0.308311 -0.553199,0.352357 -0.461002,0.35236 -0.507096,0.396399 -0.461003,0.396402 -0.414898,0.440448 -0.460998,0.440446 -0.414901,0.440449 -0.322698,0.484491 -0.3688,0.528535 -0.368799,0.528536 -0.2305,0.528537 -0.276599,0.528537 -0.230502,0.572578 -0.230498,0.572581 -0.138299,0.572579 -0.138299,0.57258 -0.1382985,0.616626 -0.09221,0.57258 0,0.616628 -0.0461,0.616625 0,0 0.0461,0.572579 0,0.616625 0.09221,0.616624 0.1382985,0.57258 0.138299,0.616625 0.138299,0.572585 0.230498,0.57258 0.230502,0.528536 0.276599,0.57258 0.2305,0.528537 0.368799,0.528537 0.3688,0.484489 0.322698,0.484493 0.414901,0.440442 0.460998,0.484492 0.414898,0.396404 0.461003,0.440447 0.507096,0.352358 0.461002,0.396399 0.553199,0.308313 0.553194,0.308315 0.553203,0.30831 0.553198,0.220226 0.599298,0.220223 0.5993,0.220221 0.599299,0.132144 0.599298,0.132143 0.645401,0.132125 0.6454,0.0881 0.5993,0 0.645401,0.04406 0,0 0.599297,-0.04406 0.645398,0 0.599297,-0.0881 0.645402,-0.132125 0.599299,-0.132143 0.599299,-0.132144 0.599299,-0.220221 0.599298,-0.220223 0.5993,-0.220226 0.5071,-0.30831 0.553197,-0.308315 0.553201,-0.308313 0.5071,-0.396399 0.460999,-0.352358 0.460999,-0.440447 0.460999,-0.396404 0.4149,-0.484492 0.414898,-0.440442 0.322702,-0.484493 0.3688,-0.484489 0.3688,-0.528537 0.276596,-0.528537 0.230498,-0.57258 0.230504,-0.528536 0.230499,-0.57258 0.138299,-0.572585 0.138299,-0.616625 0.138299,-0.57258 0.0922,-0.616624 0,-0.616625 0.04611,-0.572579"
style="fill:url(#linearGradient9177);fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<image
y="18.196489"
x="9.4765692"
id="image4051"
xlink:href="data:image/png;base64,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 TVD8UhG/VET6fkCKVyrGf8JS3zvTJgzxLine truncated
height="14.351258"
width="24.804121" />
</svg>

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

+126
View File
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="70.00013"
height="44.285007"
id="svg2"
inkscape:version="0.91 r13725"
sodipodi:docname="opensuse.svg">
<metadata
id="metadata29">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs27" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2495"
inkscape:window-height="1056"
id="namedview25"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="2.6257672"
inkscape:cx="10.160224"
inkscape:cy="17.860616"
inkscape:window-x="1985"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Logo">
<rect
style="fill:#ffffff;stroke:#ffffff;stroke-opacity:1"
id="rect4169"
width="70.265175"
height="44.939247"
x="0.19042054"
y="-0.27339759" />
<path
d="m 61.241669,11.174955 c -1.53878,-0.05651 -2.74666,-1.3536628 -2.69527,-2.8946458 0.0237,-0.746062 0.34262,-1.435659 0.88457,-1.944803 0.54415,-0.508997 1.25487,-0.773944 2.00093,-0.745877 1.54098,0.05393 2.7492,1.348923 2.69744,2.892257 -0.0233,0.743712 -0.33788,1.433269 -0.88203,1.9446168 -0.54669,0.506794 -1.25741,0.771779 -2.00568,0.748452 l 4e-5,0 z m 0.64765,-2.5312428 c 0.68485,0 1.24065,-0.370493 1.24065,-0.825521 0,-0.457417 -0.55583,-0.828099 -1.24065,-0.828099 -0.68519,0 -1.23883,0.370682 -1.23883,0.828099 0,0.455028 0.55364,0.825521 1.23883,0.825521"
style="fill:#73ba25;fill-rule:nonzero"
id="path4"
inkscape:connector-curvature="0" />
<path
d="m 29.583689,27.224557 0.099,-0.0093 0.0161,-0.117267 c -0.0254,-0.09207 -0.0851,-0.174814 -0.17734,-1.31622 -0.0783,-1.010192 -0.23705,-3.780477 1.1573,-5.154248 0.54092,-0.536129 1.36682,-1.012503 2.01823,-1.166597 2.67143,-0.651227 6.13906,-0.200223 9.10042,3.223814 1.52805,1.769386 2.27816,2.577052 2.6532,2.938324 l 0.12872,0.119605 0.15658,0.112799 c 0.12192,0.06901 5.08971,2.356252 5.08971,2.356252 l 0.10119,-0.02536 0.003,-0.107964 c -0.0322,-0.03683 -3.14766,-4.061499 -2.59561,-7.377169 0.43723,-2.641561 2.54022,-2.404543 5.44654,-2.073291 0.9503,0.108148 2.03181,0.232405 3.15016,0.257775 3.12225,0.01843 6.48658,-0.554502 8.55987,-1.461199 1.34145,-0.586685 2.19737,-0.973367 2.73364,-1.461201 0.19304,-0.158743 0.29423,-0.420982 0.39791,-0.697174 l 0.0715,-0.186275 c 0.0873,-0.223286 0.21381,-0.701824 0.26924,-0.961904 0.0254,-0.114958 0.0368,-0.239359 -0.044,-0.301379 l -0.28747,0.0529 c -0.90882,0.545386 -3.18482,1.585453 -5.31533,1.6269 -2.63926,0.05506 -7.95921,-2.65551 -8.51375,-2.943157 l -0.0529,-0.06202 c -0.1337,-0.317667 -0.93207,-2.20681 -1.10011,-2.6047298 3.8291,2.5218068 7.00425,3.9163408 9.43651,4.1326328 2.70611,0.24152 4.81623,-1.235605 5.71824,-1.866296 0.17697,-0.119605 0.31067,-0.216291 0.36574,-0.236868 l 0.0575,-0.09438 c -0.14981,-0.9503 -1.56489,-5.5523538 -2.63244,-6.6569298 -0.29674,-0.303721 -0.53379,-0.598143 -1.0125,-0.878983 -3.86805,-2.254915 -13.05144,-3.61726601 -13.48154,-3.67928501 l -0.0737,0.02072 -0.0275,0.06436 c 0,0 -0.0347,1.90524801 -0.0393,2.11707701 -0.93888,-0.31302 -7.75649,-2.51518001 -14.14906,-2.73828401 -5.41861,-0.19096 -12.82114,-0.448735 -23.28162,5.98029301 l -0.30837,0.193229 C 8.301909,9.3132972 4.905588,13.096264 3.129245,17.495785 2.572399,18.878675 1.822322,22.001299 2.5631,24.939623 c 0.322136,1.286385 0.918119,2.574894 1.723624,3.730064 1.815516,2.609233 4.864295,4.342157 8.147825,4.634235 4.63423,0.414027 8.14566,-1.668197 9.39503,-5.566303 0.85822,-2.689846 0,-6.636023 -3.29048,-8.649421 -2.67609,-1.640665 -5.55701,-1.265625 -7.22524,-0.16339 -1.44959,0.961757 -2.27099,2.452795 -2.25492,4.093494 0.0322,2.906146 2.53807,4.452427 4.33751,4.454768 0.52448,0 1.04915,-0.08973 1.64282,-0.282961 0.20953,-0.06454 0.40957,-0.142636 0.62817,-0.278498 l 0.0669,-0.0436 0.0436,-0.02536 -0.0161,0.007 c 0.41187,-0.27619 0.66034,-0.731663 0.66034,-1.219534 0,-0.133517 -0.0207,-0.269233 -0.0575,-0.405058 -0.21165,-0.734002 -0.93888,-1.180362 -1.6936,-1.042375 l -0.10119,0.02071 -0.13803,0.04595 -0.20022,0.06685 c -0.41417,0.103501 -0.72719,0.110495 -0.79155,0.112617 -0.21165,-0.01378 -1.24956,-0.324258 -1.24956,-1.461018 l 0,-0.01375 c 0.003,-0.416521 0.17035,-0.708781 0.26242,-0.867525 0.3198,-0.50625 1.20343,-1.003203 2.39756,-0.897398 1.56488,0.133371 2.69233,0.936537 3.4401,2.450637 0.69502,1.408114 0.51325,3.138548 -0.46711,4.408641 -0.97336,1.258854 -2.70592,1.792635 -5.01162,1.541632 -2.32407,-0.255286 -4.28903,-1.592231 -5.38895,-3.674634 -1.076867,-2.034155 -1.136762,-4.447961 -0.154099,-6.302429 2.353949,-4.441006 6.797079,-4.39506 9.233979,-3.973892 3.60797,0.623516 6.88234,3.511241 8.3389,7.351799 0.2324,0.612089 0.35197,1.097582 0.45547,1.539326 l 0.15658,0.664993 4.0749,1.99033 0.0554,0.03914 1.1e-4,-3.7e-5 z M 58.548909,5.5489272 c -0.76831,0.713245 -1.20807,1.686612 -1.24491,2.735942 -0.0711,2.1628418 1.62709,3.9853128 3.78978,4.0659648 1.05399,0.03449 2.05253,-0.336085 2.81872,-1.05398 0.76619,-0.715592 1.20592,-1.6866118 1.2449,-2.7336368 0.0737,-2.165181 -1.62459,-3.989959 -3.79189,-4.06809 -1.04933,-0.03448 -2.05041,0.335905 -2.8166,1.0538"
style="fill:#73ba25;fill-rule:evenodd"
id="path6"
inkscape:connector-curvature="0" />
<path
d="m 69.880729,32.589151 -0.0455,0 c -0.0526,0 -0.0982,-0.04561 -0.0982,-0.09822 l 0,-0.704859 -0.15433,0.234949 c -0.0175,0.02452 -0.0491,0.03502 -0.0771,0.03502 l -0.0176,0 c -0.028,0 -0.0596,-0.01051 -0.0771,-0.03502 l -0.15784,-0.234949 0,0.704859 c 0,0.05261 -0.0456,0.09822 -0.10172,0.09822 l -0.0455,0 c -0.0526,0 -0.0982,-0.04561 -0.0982,-0.09822 l 0,-0.841684 -0.4735,0 0,0.841684 c 0,0.05261 -0.0491,0.09822 -0.10513,0.09822 l -0.0421,0 c -0.0526,0 -0.0982,-0.04561 -0.0982,-0.09822 l 0,-0.841684 -0.35418,0 c -0.0526,0 -0.0947,-0.03511 -0.0947,-0.09113 l 0,-0.0491 c 0,-0.05611 0.0421,-0.09122 0.0947,-0.09122 l 1.24147,0 c 0.0491,0 0.0806,0.0175 0.0982,0.04561 l 0.23494,0.35418 0.23496,-0.35418 c 0.0175,-0.0246 0.0456,-0.04561 0.0982,-0.04561 l 0.15783,0 0,1.080139 c 0,0.05261 -0.0491,0.09822 -0.10522,0.09822"
style="fill:#73ba25"
id="path8"
inkscape:connector-curvature="0" />
<path
d="m 29.287079,31.112727 c -1.69737,0 -2.63727,1.437818 -2.63727,2.433833 l 0,1.276578 c 0,1.462418 1.19586,2.370719 2.3076,2.370719 l 3.89275,0 c 0.48751,0 0.58922,0.319076 0.58922,0.589128 l 0,0.824177 c 0,0.08763 -0.014,0.880293 -0.58922,0.880293 l -5.31306,0 c -0.52611,0 -0.9083,0.364684 -0.9083,0.866189 l 0,0.227955 c 0,0.498004 0.37869,0.866282 0.9083,0.866282 l 5.60422,0 c 1.46242,0 2.40932,-1.017113 2.40932,-2.595259 l 0,-1.378208 c 0,-1.480014 -1.06613,-2.142767 -2.12176,-2.142767 l -3.82964,0 c -0.57871,0 -0.83818,-0.427891 -0.83818,-0.736464 l 0,-0.757558 c 0,-0.480409 0.31908,-0.753967 0.8802,-0.753967 l 4.24352,0 c 0.51902,0 0.9083,-0.371774 0.9083,-0.866282 l 0,-0.227952 c 0,-0.491002 -0.39629,-0.866195 -0.9258,-0.866195 l -4.5732,0"
id="S"
style="fill:#73ba25"
inkscape:connector-curvature="0" />
<path
d="m 45.219449,31.112727 c -0.50151,0 -0.9083,0.40679 -0.9083,0.908297 l 0,6.523027 c 0,0.519012 -0.42438,0.939901 -0.9399,0.939901 l -2.95994,0 c -0.51902,0 -0.93991,-0.420889 -0.93991,-0.939901 l 0,-6.523027 c 0,-0.501507 -0.40328,-0.908297 -0.9083,-0.908297 l -0.28756,0 c -0.50501,0 -0.9083,0.399788 -0.9083,0.908297 l 0,6.771984 c 0,1.574646 1.23797,2.717986 2.94585,2.717986 l 3.16338,0 c 1.70788,0 2.94585,-1.14334 2.94585,-2.717986 l 0,-6.771984 c 0,-0.508509 -0.39979,-0.908297 -0.9083,-0.908297 l -0.28757,0"
style="fill:#73ba25"
id="path11"
inkscape:connector-curvature="0" />
<use
style=""
transform="translate(21.601409,1.9460253e-7)"
xlink:href="#S"
id="use13"
x="0"
y="0"
width="100%"
height="100%" />
<path
d="m 59.843639,31.112727 c -0.50142,0 -0.8872,0.371687 -0.8872,0.866189 l 0,8.602683 c 0,0.491002 0.37169,0.866282 0.86969,0.866282 l 6.8562,0 c 0.52611,0 0.90839,-0.364775 0.90839,-0.866282 l 0,-0.227955 c 0,-0.498005 -0.37878,-0.866189 -0.90839,-0.866189 0,0 -5.36217,0 -5.61472,0 0,-0.22445 0,-1.967432 0,-2.191882 0.25255,0 4.11379,0 4.11379,0 0.52602,0 0.9083,-0.364772 0.9083,-0.869784 l 0,-0.224447 c 0,-0.50151 -0.38228,-0.869695 -0.9083,-0.869695 0,0 -3.86124,0 -4.11379,0 0,-0.224446 0,-2.027045 0,-2.251491 0.25255,0 5.33066,0 5.33066,0 0.52611,0 0.90839,-0.364772 0.90839,-0.866283 l 0,-0.227949 c 0,-0.50151 -0.38228,-0.866192 -0.90839,-0.866192 l -6.55103,0"
style="fill:#73ba25"
id="path15"
inkscape:connector-curvature="0" />
<path
d="M 1.553608,35.20533 C 0.697896,35.20533 0,35.87167 0,36.695847 l 0,3.244006 c 0,0.834679 0.673347,1.51503 1.501007,1.51503 l 2.097187,0 c 0.82766,0 1.504508,-0.680351 1.504508,-1.51503 l 0,-3.244006 c 0,-0.820674 -0.697893,-1.490517 -1.553608,-1.490517 l -1.995486,0 z m -0.452408,4.608203 0,-2.959853 c 0,-0.347267 0.284072,-0.63133 0.631267,-0.63133 l 1.634267,0 c 0.340183,0 0.631258,0.287653 0.631258,0.63133 l 0,2.959853 c 0,0.34727 -0.284063,0.631328 -0.631258,0.631328 l -1.6483,0 c -0.347195,0 -0.617234,-0.277055 -0.617234,-0.631328"
style="fill:#73ba25"
id="path17"
inkscape:connector-curvature="0" />
<path
d="m 9.858239,35.166812 c -0.60673,0 -1.05914,0.217447 -1.42738,0.392785 -0.22094,0.105135 -0.41382,0.196349 -0.56463,0.196349 -0.0631,0 -0.12274,-0.02801 -0.15431,-0.07712 l -0.13677,-0.266555 c -0.0316,-0.07012 -0.17185,-0.206939 -0.347194,-0.206939 l -0.203405,0 c -0.196393,0 -0.357718,0.175426 -0.357718,0.396282 l 0,8.223993 c 0,0.25596 0.199904,0.4594 0.45942,0.4594 l 0.178859,0 c 0.252508,0 0.459418,-0.20694 0.459418,-0.4594 l 0,-2.728494 c 0,-0.08062 0.0526,-0.164836 0.1017,-0.164836 0.15081,0 0.34369,0.08422 0.56814,0.189437 0.36473,0.164833 0.82065,0.375187 1.42738,0.375187 l 0.18934,0 c 1.06963,0 1.73598,-0.610142 1.73598,-1.592149 l 0,-3.138784 c 0,-0.967914 -0.68035,-1.595655 -1.73598,-1.595655 l -0.19285,0 0,0 0,-0.0035 z m -2.09722,4.583605 0,-2.830121 c 0,-0.389282 0.30512,-0.694443 0.69439,-0.694443 l 1.52906,0 c 0.38929,0 0.69436,0.305161 0.69436,0.694443 l 0,2.830121 c 0,0.38228 -0.30857,0.694444 -0.69436,0.694444 l -1.52906,0 c -0.38226,0 -0.69439,-0.312164 -0.69439,-0.694444"
style="fill:#73ba25"
id="path19"
inkscape:connector-curvature="0" />
<path
d="m 14.894249,35.20533 c -0.85569,0 -1.55354,0.66634 -1.55354,1.490517 l 0,3.219406 c 0,0.834678 0.67684,1.54313 1.47642,1.54313 l 2.16386,0 c 0.26647,0 0.45941,-0.182431 0.45941,-0.434891 l 0,-0.140328 c 0,-0.25246 -0.19294,-0.434798 -0.45941,-0.434798 l -1.77458,0 c -0.49801,0 -0.76106,-0.242048 -0.76106,-0.708452 0,0 0,-0.810083 0,-0.939903 0.14383,0 3.20549,0 3.20549,0 0.51201,0 0.82059,-0.315574 0.82059,-0.848684 l 0,-1.248475 c 0,-0.820676 -0.69786,-1.490432 -1.55355,-1.490432 l -2.02004,0 -0.004,-0.0071 z m -0.4524,1.634257 c 0,-0.343679 0.27006,-0.617237 0.61723,-0.617237 l 1.68687,0 c 0.34727,0 0.61724,0.270055 0.61724,0.617237 0,0 0,0.873282 0,1.003018 -0.13674,0 -2.78452,0 -2.92134,0 0,-0.129736 0,-1.003018 0,-1.003018"
style="fill:#73ba25"
id="path21"
inkscape:connector-curvature="0" />
<path
d="m 22.932389,35.166812 c -0.60322,0 -1.05913,0.213944 -1.4239,0.389285 -0.22795,0.105135 -0.4243,0.199849 -0.58213,0.199849 -0.0701,0 -0.0982,-0.007 -0.15083,-0.101723 l -0.12623,-0.231452 c -0.0701,-0.143735 -0.19285,-0.217441 -0.36118,-0.217441 l -0.17894,0 c -0.21385,0 -0.36818,0.16483 -0.36818,0.396282 l 0,5.393777 c 0,0.256053 0.20335,0.462994 0.4594,0.462994 l 0.17884,0 c 0.25255,0 0.4594,-0.206941 0.4594,-0.462994 l 0,-4.082095 c 0,-0.38228 0.31217,-0.694444 0.69445,-0.694444 l 1.52904,0 c 0.38228,0 0.69435,0.312164 0.69435,0.694444 l 0,4.082095 c 0,0.256053 0.20344,0.462994 0.45949,0.462994 l 0.17884,0 c 0.25246,0 0.45941,-0.206941 0.45941,-0.462994 l 0,-4.232926 c 0,-0.967911 -0.68035,-1.595651 -1.73598,-1.595651 l -0.19285,0"
style="fill:#73ba25"
id="path23"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<svg id="svg1998" width="51.358818" height="47.630692" version="1.0" xmlns="http://www.w3.org/2000/svg">
<defs id="defs2001">
<marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
<path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(1.1,0,0,1.1,1.1,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
<path id="path11921" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)"/>
</marker>
<marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
<path id="path11936" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " style="fill-rule:evenodd;stroke:black;stroke-width:1pt;marker-start:none" transform="matrix(0.8,0,0,0.8,10,0)"/>
</marker>
<linearGradient id="linearGradient9199" gradientUnits="userSpaceOnUse" gradientTransform="matrix(24.666332,1.3331909e-2,-1.2883406e-2,23.708747,-8.6563136,-4.6316275)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
<stop style="stop-opacity: 1; stop-color: rgb(239, 239, 239);" offset="0" id="stop8333"/>
<stop style="stop-opacity: 1; stop-color: rgb(255, 255, 255);" offset="1" id="stop8335"/>
</linearGradient>
</defs>
<path id="path11907" d="M 1.8402723,44.565612 L 1.8402723,47.615693 L 44.293781,47.615693 L 44.293781,44.565612 L 1.8402723,44.565612" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
<path id="path11020" d="M 44.370594,6.1851672 L 51.194316,1.0980117 L 51.358819,41.344844 L 44.266438,47.63069 L 44.370594,6.1851672" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:0.001"/>
<path id="path2037" d="M 0.062500355,5.0439492 L 0.062500355,46.326915 L 44.31814,46.326915 L 44.31814,5.0439492 L 0.062500355,5.0439492" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(239, 239, 239);"/>
<path id="path2041" d="M -0.028418806,5.1647552 L 5.5982489,0.11782966 L 50.022311,0.14184042 L 44.346312,5.1887393 L -0.028418806,5.1647552" style="fill:url(#linearGradient9199);fill-opacity:1;stroke:none;stroke-width:0.001"/>
<path id="path2045" d="M 44.228586,5.0887264 L 49.976169,0.12831483 L 49.976169,41.348635 L 44.228586,46.309047 L 44.228586,5.0887264" style="fill-opacity: 1; stroke: none; stroke-width: 0.001; fill: rgb(223, 223, 223);"/>
<path id="path-1" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 22.02 13.392 C 18.596 13.392 15.66 14.606 13.304 16.992 C 10.94 19.354 9.744 22.31 9.744 25.78 C 9.744 29.424 10.984 32.462 13.428 34.804 C 15.862 37.152 18.706 38.342 21.89 38.342 C 25.346 38.342 28.302 37.132 30.678 34.744 C 33.052 32.326 34.256 29.34 34.256 25.87 C 34.256 22.352 33.068 19.364 30.72 16.992 C 28.39 14.606 25.464 13.392 22.02 13.392 Z M 21.824 43.716 C 17.4 43.716 13.37 42.162 9.85 39.1 C 5.966 35.706 4 31.202 4 25.714 C 4 20.886 5.794 16.684 9.332 13.218 C 12.852 9.756 17.146 8 22.09 8 C 26.972 8 31.22 9.772 34.714 13.266 C 38.22 16.758 40 21.014 40 25.91 C 40 30.842 38.214 35.086 34.69 38.518 C 31.154 41.966 26.824 43.716 21.824 43.716"/>
<path id="path-2" style="fill:#458d3e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 32.134 22.922 L 27.044 18.878 L 27.044 21.402 L 18.01 21.402 L 18.01 24.442 L 27.044 24.442 L 27.044 26.968 L 32.134 22.922"/>
<path id="path-3" style="fill:#458d3e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 11.436 28.122 L 16.532 32.168 L 16.532 29.644 L 25.564 29.644 L 25.564 26.6 L 16.532 26.6 L 16.532 24.074 L 11.436 28.122"/>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

Loaded 100 of 197 files, more files were not shown because too many files have changed in this diff. Show more