Compare commits

...
64 Commits
Author SHA1 Message Date
grossmj b1209155f5 Release v2.2.49 2024-08-06 12:55:15 +02:00
grossmj 7cebb9472a Bundle web-ui v2.2.49 2024-08-06 12:41:06 +02:00
grossmj 00c3b1abc1 Merge remote-tracking branch 'origin/master' into 2.2 2024-08-06 12:37:55 +02:00
grossmj b1c1c0520c Sync appliances 2024-08-06 12:34:07 +02:00
grossmj 2bb26075f0 Forbid -nic and -nicdev in Qemu additional options. Fixes https://github.com/GNS3/gns3-server/issues/2397 2024-08-05 17:51:46 +02:00
grossmj 6746ef39be Upgrade development packages 2024-08-03 12:32:43 +02:00
grossmj 8889eaa439 Upgrade jsonschema and sentry-sdk packages 2024-08-03 12:32:06 +02:00
grossmj 95a4c284bc Update IOU base configs to use "no ip domain lookup". Fixes #2404 2024-07-22 19:07:17 +02:00
grossmj 6951137a25 Development on 2.2.49.dev1 2024-07-13 16:32:13 +02:00
Jeremy Grossmann cccbca3d5e Merge pull request #2401 from GNS3/release/v2.2.48.1
Release v2.2.48.1
2024-07-13 14:43:53 +02:00
grossmj 8659439829 Release v2.2.48.1 2024-07-12 18:26:16 +02:00
grossmj 677bc389a5 Bundle web-ui v2.2.48.1 2024-07-11 23:44:24 +02:00
grossmj 4a58ede550 Development on 2.2.49.dev1 2024-07-09 00:32:44 +02:00
Jeremy Grossmann 3f5b0bb514 Merge pull request #2395 from GNS3/2.2
Release v2.2.48
2024-07-09 00:30:55 +02:00
grossmj 6e8e0764c1 Release v2.2.48 2024-07-08 18:44:09 +02:00
grossmj eaa18ad624 Bundle web-ui v2.2.48 2024-07-08 18:24:02 +02:00
grossmj 0a32be276e Sync appliances 2024-07-08 18:18:25 +02:00
Jeremy Grossmann 271c958381 Merge pull request #2394 from GNS3/bugfix/2226
New path settings for the server config
2024-07-08 18:16:27 +02:00
grossmj ca1d99b112 Add 'install_builtin_appliances' and 'resources_path' settings in the server config 2024-07-08 18:06:33 +02:00
Jeremy Grossmann 90dce03da2 Merge pull request #2392 from GNS3/bugfix/2385
Forbid unsafe Qemu additional options
2024-07-06 17:18:59 +02:00
Jeremy Grossmann b48bd92da3 Merge pull request #2393 from GNS3/feature/keep-compute-ids
Option to keep the compute IDs unchanged when exporting a project
2024-07-06 17:12:38 +02:00
grossmj d54c9db8c3 Option to keep the compute IDs unchanged when exporting a project 2024-07-06 17:08:16 +02:00
grossmj b194e48649 Forbid unsafe Qemu additional options 2024-07-06 12:24:22 +02:00
Jeremy Grossmann 29f848d833 Merge pull request #2391 from GNS3/bugfix/2388
Fix issues with invalid snapshot filenames
2024-07-05 12:49:59 +02:00
grossmj 08154e43aa Fix error when snapshot exists with an underscore in the name 2024-07-05 12:04:53 +02:00
grossmj 84efc55d02 Upgrade sentry-sdk, psutil and aiofiles packages 2024-07-03 18:53:14 +02:00
Jeremy Grossmann a58fb320ac Merge pull request #2387 from GNS3/bugfix/3588
Fix check to test if IPv6 is enabled on host
2024-06-17 16:54:20 +02:00
grossmj 39057bd781 Fix check for IPv6 enabled on host 2024-06-17 16:41:40 +02:00
grossmj 0f3b96f134 Development on 2.2.48.dev1 2024-05-23 12:19:15 +07:00
Jeremy Grossmann 35f94b0c73 Merge pull request #2382 from GNS3/update-ga-workflows
Update GitHub Action workflows
2024-05-17 12:22:43 +07:00
grossmj b82b9a64e6 Rename codeql.yml back to codeql-analysis.yml 2024-05-17 12:19:38 +07:00
grossmj 901652aaeb Update GitHub Action workflows 2024-05-17 12:14:47 +07:00
Jeremy Grossmann 6c9a3b634b Merge pull request #2381 from GNS3/release/v2.2.47
Release v2.2.47
2024-05-15 17:06:53 +07:00
grossmj 0561aba927 Release v2.2.47 2024-05-15 12:14:48 +07:00
grossmj 86a78f53cb Fix update-bundled-web-ui.sh script 2024-05-15 12:05:43 +07:00
grossmj f0bc74ff6e Bundle web-ui v2.2.47 2024-05-15 12:04:34 +07:00
grossmj f81128f717 Bundle web-ui v2.2.47 2024-05-15 11:55:47 +07:00
grossmj 9ce505cad3 Sync appliances 2024-05-15 11:43:04 +07:00
Jeremy Grossmann 6b8635f7d5 Merge pull request #2380 from GNS3/drop-python3.7
Drop Python 3.7
2024-05-09 19:10:04 +07:00
grossmj 388ffe9f00 Change sentry-sdk version 2024-05-09 19:03:08 +07:00
grossmj d01129a3cf Upgrade aiohttp, sentry-sdk and truststore 2024-05-09 18:58:37 +07:00
grossmj 535ea0ad9f Upgrade jsonschema and aiohttp 2024-05-09 18:37:40 +07:00
grossmj ccb5de6df1 Drop Python 3.7 2024-05-09 18:23:58 +07:00
Jeremy Grossmann cdcfc652db Merge pull request #2379 from GNS3/fix-warnings-in-tests
Fix warnings in tests
2024-05-09 18:13:13 +07:00
grossmj 7030dadbcb Remove dev requirements for Python 3.6 2024-05-09 18:04:19 +07:00
grossmj 46a9fdb61d Remove event_loop 2024-05-09 17:53:02 +07:00
grossmj 9958b876cf Do not run Docker VM tests on Windows 2024-05-09 17:36:58 +07:00
grossmj 259d3a0155 Fix cannot import UTC 2024-05-09 17:23:32 +07:00
grossmj 33499be425 Fix warnings in tests 2024-05-09 17:11:12 +07:00
grossmj 3fd44f5260 Do not wait for the server to close when shutting down. 2024-05-09 16:37:45 +07:00
grossmj c076275bd0 Fix test create image with not supported characters by filesystem. Fixes #2375 2024-05-09 16:01:55 +07:00
grossmj 081447ba2e Fix tests. Ref #2376 2024-05-09 15:37:42 +07:00
grossmj 3df7af12e1 Allow listing x86_64 IOU images. Fixes #2376 2024-05-09 15:21:05 +07:00
grossmj d9e4ce5639 Upgrade Jinja2 to version 3.1.4. Fixes #2378 2024-05-08 18:08:00 +07:00
grossmj 35b75f0f7f Fix link capture for ATM switch. Fixes https://github.com/GNS3/gns3-gui/issues/3570 2024-04-23 18:35:36 +07:00
grossmj 2609849507 Fix tests after updating error message when busybox is not installed. 2024-04-23 18:00:37 +07:00
grossmj 448b94f701 Add more details to error message when busybox is not installed. Fixes https://github.com/GNS3/gns3-gui/issues/3569 2024-04-23 17:54:06 +07:00
grossmj 18002a7580 Fix invalid escape sequences 2024-04-23 16:52:28 +07:00
Jeremy Grossmann 1414bdcadf Merge pull request #2369 from GNS3/feature/nat-symbols
NAT symbols
2024-04-22 19:00:19 +07:00
grossmj b6e68ba1a8 Add NAT symbols 2024-04-22 18:51:29 +07:00
Jeremy Grossmann 19142d97bb Merge pull request #2366 from GNS3/bugfix/block-iou-call
Block IOU phone home call using IPtable
2024-04-20 15:53:39 +07:00
grossmj faf7e09ebb Only use iptable to block xml.cisco.com on Ubuntu Focal. 2024-04-20 15:45:28 +07:00
grossmj 4959a51ce7 Block IOU phone home call using IPtable 2024-04-06 13:04:20 +07:00
Jeremy Grossmann 5bab4131e1 Merge pull request #2361 from GNS3/release/v2.2.46
Release v2.2.46
2024-02-26 17:51:46 +08:00
118 changed files with 2195 additions and 242 deletions

No files matched your search

@@ -10,7 +10,7 @@ jobs:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.4.0
- uses: actions/add-to-project@v1.0.1
with:
project-url: https://github.com/orgs/GNS3/projects/3
github-token: ${{ secrets.ADD_NEW_ISSUES_TO_PROJECT }}
+51 -28
View File
@@ -13,58 +13,81 @@ name: "CodeQL"
on:
push:
branches: [ master ]
branches: [ "master" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
branches: [ "master" ]
schedule:
- cron: '44 1 * * 3'
- cron: '21 12 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
include:
- language: python
build-mode: none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
@@ -12,11 +12,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: "gh-pages"
- uses: actions/setup-python@v3
- uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Merge changes from 3.0 branch
+3 -3
View File
@@ -16,12 +16,12 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
+43
View File
@@ -1,5 +1,48 @@
# Change Log
## 2.2.49 06/08/2024
* Bundle web-ui v2.2.49
* Forbid -nic and -nicdev in Qemu additional options. Fixes https://github.com/GNS3/gns3-server/issues/2397
* Upgrade jsonschema and sentry-sdk packages
* Update IOU base configs to use "no ip domain lookup". Fixes #2404
## 2.2.48.1 12/07/2024
* Bundle web-ui v2.2.48.1
## 2.2.48 08/07/2024
* Bundle web-ui v2.2.48
* Add 'install_builtin_appliances' and 'resources_path' settings in the server config
* Option to keep the compute IDs unchanged when exporting a project
* Forbid unsafe Qemu additional options
* Fix error when snapshot exists with an underscore in the name
* Upgrade sentry-sdk, psutil and aiofiles packages
* Fix check for IPv6 enabled on host
## 2.2.47 15/05/2024
* Fix update-bundled-web-ui.sh script
* Bundle web-ui v2.2.47
* Change sentry-sdk version
* Upgrade aiohttp, sentry-sdk and truststore
* Upgrade jsonschema and aiohttp
* Drop Python 3.7
* Remove dev requirements for Python 3.6
* Do not run Docker VM tests on Windows
* Do not wait for the server to close when shutting down.
* Fix test create image with not supported characters by filesystem. Fixes #2375
* Allow listing x86_64 IOU images. Fixes #2376
* Upgrade Jinja2 to version 3.1.4. Fixes #2378
* Fix link capture for ATM switch. Fixes https://github.com/GNS3/gns3-gui/issues/3570
* Fix tests after updating error message when busybox is not installed.
* Add more details to error message when busybox is not installed. Fixes https://github.com/GNS3/gns3-gui/issues/3569
* Fix invalid escape sequences
* Add NAT symbols
* Fix cannot stop Docker VM while console connection is still active.
* Upgrade sentry-sdk to version 1.40.6
## 2.2.46 26/02/2024
* Bundle web-ui v2.2.46
+13 -3
View File
@@ -9,18 +9,23 @@ ssl = False
certfile=/home/gns3/.config/GNS3/ssl/server.cert
certkey=/home/gns3/.config/GNS3/ssl/server.key
; Path where devices images are stored
; Path where binary images are stored
images_path = /home/gns3/GNS3/images
; Path where user projects are stored
projects_path = /home/gns3/GNS3/projects
; Path where user appliances are stored
; Path where custom user appliances are stored
appliances_path = /home/gns3/GNS3/appliances
; Path where custom device symbols are stored
; Path where custom user symbols are stored
symbols_path = /home/gns3/GNS3/symbols
; Path where files like built-in appliances and Docker resources are stored
; The default path is the local user data directory
; (Linux: "~/.local/share/GNS3", macOS: "~/Library/Application Support/GNS3", Windows: "%APPDATA%\GNS3")
; resources_path = /home/gns3/GNS3/resources
; Option to automatically send crash reports to the GNS3 team
report_errors = True
@@ -62,6 +67,9 @@ default_nat_interface = vmnet10
; Enable the built-in templates
enable_builtin_templates = True
; Install built-in appliances
install_builtin_appliances = True
; check if hardware virtualization is used by other emulators (KVM, VMware or VirtualBox)
hardware_virtualization_check = True
@@ -93,6 +101,8 @@ require_kvm = True
enable_hardware_acceleration = True
; Require hardware acceleration in order to start VMs (all platforms)
require_hardware_acceleration = False
; Allow unsafe additional command line options
allow_unsafe_options = False
[VMware]
; First vmnet interface of the range that can be managed by the GNS3 server
+4 -6
View File
@@ -1,8 +1,6 @@
-rrequirements.txt
pytest==7.2.0; python_version >= '3.7'
pytest==7.0.1; python_version < '3.7' # v7.0.1 is the last version to support Python 3.6
flake8==5.0.4
pytest-timeout==2.1.0
pytest-aiohttp==1.0.4; python_version >= '3.7'
pytest-aiohttp==0.3.0; python_version < '3.7' # last version to support Python 3.6
pytest==8.3.2
flake8==7.1.0
pytest-timeout==2.3.1
pytest-aiohttp==1.0.5
+178 -2
View File
@@ -24,9 +24,101 @@
"hdb_disk_interface": "ide",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require"
"kvm": "require",
"options": "-cpu host"
},
"images": [
{
"filename": "vEOS64-lab-4.32.0F.vmdk",
"version": "4.32.0F",
"md5sum": "851771260bb18ad3e90fa6956f0c6161",
"filesize": 591724544,
"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,
"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,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
"filename": "Aboot-veos-serial-8.0.2.iso",
"version": "8.0.2",
"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",
@@ -218,6 +310,90 @@
}
],
"versions": [
{
"name": "4.32.0F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.32.0F.vmdk"
}
},
{
"name": "4.31.3M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
"hdb_disk_image": "vEOS64-lab-4.31.3M.vmdk"
}
},
{
"name": "4.30.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": {
@@ -398,4 +574,4 @@
}
}
]
}
}
@@ -32,6 +32,27 @@
"process_priority": "normal"
},
"images": [
{
"filename": "arubaoscx-disk-image-genericx86-p4-20240129204649.vmdk",
"version": "10.13.1000",
"md5sum": "a1a24b15e3b8a09b0c0f14bdfacc4a75",
"filesize": 395342848,
"download_url": "https://networkingsupport.hpe.com"
},
{
"filename": "arubaoscx-disk-image-genericx86-p4-20231110145644.vmdk",
"version": "10.13.0005",
"md5sum": "427fd4580e2ee3eac55a9e7d629d1375",
"filesize": 394995200,
"download_url": "https://networkingsupport.hpe.com"
},
{
"filename": "arubaoscx-disk-image-genericx86-p4-20230810165021.vmdk",
"version": "10.12.1000",
"md5sum": "ea89f94dda9d28bf583dc35e0299b106",
"filesize": 384622080,
"download_url": "https://networkingsupport.hpe.com"
},
{
"filename": "arubaoscx-disk-image-genericx86-p4-20230531220439.vmdk",
"version": "10.12.0006",
@@ -118,6 +139,24 @@
}
],
"versions": [
{
"name": "10.13.1000",
"images": {
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20240129204649.vmdk"
}
},
{
"name": "10.13.0005",
"images": {
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20231110145644.vmdk"
}
},
{
"name": "10.12.1000",
"images": {
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20230810165021.vmdk"
}
},
{
"name": "10.12.0006",
"images": {
@@ -6,7 +6,7 @@
"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/home",
"documentation_url": "https://help.cloudswit.ch/portal/en/kb/articles/vasternos",
"product_name": "vAsterNOS",
"product_url": "https://cloudswit.ch/product/sonic-enterprise-distribution",
"registry_version": 4,
@@ -34,7 +34,7 @@
"version": "V3.1",
"md5sum": "c323c9c3f60e1a93eca2acdc5034b85c",
"filesize": 2724659200,
"download_url": "https://cloudswit.ch/product/sonic-enterprise-distribution/#vAsterNOS"
"download_url": "https://drive.cloudswitch.io/external/8ae2e3932ad8bb2ec30dd25be415d288ff3e4a949c557c6bd48ac6e6265bcfc1"
}
],
"versions": [
+14 -1
View File
@@ -25,11 +25,18 @@
},
"images": [
{
"filename": "c8000v-universalk9_8G_serial.17.09.04a.qcow2",
"version": "17.09.04a 8G",
"md5sum": "d5dcba52b522f41648538737af80cdf9",
"filesize": 1858142208,
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Cupertino-17.9.4a"
},
{
"filename": "c8000v-universalk9_8G_serial.17.09.01a.qcow2",
"version": "17.09.01a 8G",
"md5sum": "a10ae2c4d71f4eb611bc4d83ad7709f0",
"filesize": 1856634880,
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Bengaluru-17.6.5"
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Cupertino-17.9.1a"
},
{
"filename": "c8000v-universalk9_8G_serial.17.06.05.qcow2",
@@ -62,6 +69,12 @@
],
"versions": [
{
"name": "17.09.04a 8G",
"images": {
"hda_disk_image": "c8000v-universalk9_8G_serial.17.09.04a.qcow2"
}
},
{
"name": "17.09.01a 8G",
"images": {
"hda_disk_image": "c8000v-universalk9_8G_serial.17.09.01a.qcow2"
+2 -2
View File
@@ -19,7 +19,7 @@
},
"images": [
{
"filename": "x86_64_crb_linux_l2-adventerprisek9-ms",
"filename": "x86_64_crb_linux_l2-adventerprisek9-ms.bin",
"version": "17.12.1",
"md5sum": "2b5055e4cef8fd257416d74a94adb626",
"filesize": 240355720
@@ -47,7 +47,7 @@
{
"name": "17.12.1",
"images": {
"image": "x86_64_crb_linux_l2-adventerprisek9-ms"
"image": "x86_64_crb_linux_l2-adventerprisek9-ms.bin"
}
},
{
+2 -2
View File
@@ -19,7 +19,7 @@
},
"images": [
{
"filename": "x86_64_crb_linux-adventerprisek9-ms",
"filename": "x86_64_crb_linux-adventerprisek9-ms.bin",
"version": "17.12.1",
"md5sum": "4a2fce8de21d1831fbceffd155e41ae7",
"filesize": 288947184
@@ -47,7 +47,7 @@
{
"name": "17.12.1",
"images": {
"image": "x86_64_crb_linux-adventerprisek9-ms"
"image": "x86_64_crb_linux-adventerprisek9-ms.bin"
}
},
{
+28
View File
@@ -23,6 +23,14 @@
"kvm": "allow"
},
"images": [
{
"filename": "debian-12.6.qcow2",
"version": "12.6",
"md5sum": "04753ba14295c6414d49bffe27b676ae",
"filesize": 280907776,
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-12.6.qcow2"
},
{
"filename": "debian-12.4.qcow2",
"version": "12.4",
@@ -31,6 +39,14 @@
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-12.4.qcow2"
},
{
"filename": "debian-11.10.qcow2",
"version": "11.10",
"md5sum": "99a1dc8e110d641309674e69b630e732",
"filesize": 263520256,
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-11.10.qcow2"
},
{
"filename": "debian-11.8.qcow2",
"version": "11.8",
@@ -41,12 +57,24 @@
}
],
"versions": [
{
"name": "12.6",
"images": {
"hda_disk_image": "debian-12.6.qcow2"
}
},
{
"name": "12.4",
"images": {
"hda_disk_image": "debian-12.4.qcow2"
}
},
{
"name": "11.10",
"images": {
"hda_disk_image": "debian-11.10.qcow2"
}
},
{
"name": "11.8",
"images": {
+46 -4
View File
@@ -28,10 +28,17 @@
},
"images": [
{
"filename": "FAD_KVM-FORTINET.out.kvm-data.qcow2",
"version": "ALL",
"md5sum": "b7500835594e62d8acb1c6ec43d597c1",
"filesize": 30998528,
"filename": "FAD_KVM-V7.4.4-build0347-FORTINET.out.kvm_boot.qcow2",
"version": "7.4.4",
"md5sum": "52fa343fd423a1a560473b8cf02f4c9c",
"filesize": 180617216,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAD_KVM-V7.2.6-build0257-FORTINET.out.kvm_boot.qcow2",
"version": "7.2.6",
"md5sum": "ed8c3622b12212786c310aa94c928f06",
"filesize": 146341888,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
@@ -41,6 +48,13 @@
"filesize": 145817600,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAD_KVM-v7.1.4-build0138-FORTINET.out.kvm_boot.qcow2",
"version": "7.1.4",
"md5sum": "d4b3ff27fc9d0461199d6066174744ca",
"filesize": 134152192,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAD_KVM-V7.1.1-build0117-FORTINET.out.kvm-boot.qcow2",
"version": "7.1.1",
@@ -243,9 +257,30 @@
"md5sum": "7a71f52bde93c0000b047626731b7aef",
"filesize": 68026368,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAD_KVM-FORTINET.out.kvm-data.qcow2",
"version": "ALL",
"md5sum": "b7500835594e62d8acb1c6ec43d597c1",
"filesize": 30998528,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
}
],
"versions": [
{
"name": "7.4.4",
"images": {
"hda_disk_image": "FAD_KVM-V7.4.4-build0347-FORTINET.out.kvm_boot.qcow2",
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
}
},
{
"name": "7.2.6",
"images": {
"hda_disk_image": "FAD_KVM-V7.2.6-build0257-FORTINET.out.kvm_boot.qcow2",
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
}
},
{
"name": "7.2.0",
"images": {
@@ -253,6 +288,13 @@
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
}
},
{
"name": "7.1.4",
"images": {
"hda_disk_image": "FAD_KVM-v7.1.4-build0138-FORTINET.out.kvm_boot.qcow2",
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
}
},
{
"name": "7.1.1",
"images": {
+42
View File
@@ -29,6 +29,13 @@
"kvm": "allow"
},
"images": [
{
"filename": "FAZ_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
"version": "7.4.3",
"md5sum": "c58709af18516763ed88f58621447bf6",
"filesize": 504463360,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
"version": "7.4.2",
@@ -43,6 +50,13 @@
"filesize": 435310592,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
"version": "7.2.5",
"md5sum": "225d7405f35f78a482cffa34ef90080d",
"filesize": 379973632,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.2.4-build1460-FORTINET.out.kvm.qcow2",
"version": "7.2.4",
@@ -64,6 +78,13 @@
"filesize": 340631552,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
"version": "7.0.12",
"md5sum": "a45f8987ea13da836c684b5d9850c1c2",
"filesize": 349560832,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
"version": "7.0.11",
@@ -256,6 +277,13 @@
}
],
"versions": [
{
"name": "7.4.3",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.2",
"images": {
@@ -270,6 +298,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.5",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.4",
"images": {
@@ -291,6 +326,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.12",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.11",
"images": {
+58 -2
View File
@@ -13,13 +13,13 @@
"status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "Default username is admin, no password is set. First book takes longer.",
"usage": "Default username is admin, no password is set. First boot takes longer.",
"symbol": "fortinet.svg",
"port_name_format": "Port{port1}",
"qemu": {
"adapter_type": "e1000",
"adapters": 4,
"ram": 1024,
"ram": 4096,
"hda_disk_interface": "virtio",
"hdb_disk_interface": "virtio",
"arch": "x86_64",
@@ -28,6 +28,27 @@
"kvm": "allow"
},
"images": [
{
"filename": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_fackvm.qcow2",
"version": "6.6.1",
"md5sum": "4b2b475ac8b6f88b5033dca367d53cbb",
"filesize": 138477584,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_fackvm.qcow2",
"version": "6.5.5",
"md5sum": "6850128ac51cee2577114ecd487786ff",
"filesize": 112918544,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAC_VM_KVM-v6.4.9-build1067-FORTINET.out.kvm_fackvm.qcow2",
"version": "6.4.9",
"md5sum": "aee068a16fb2ca332d41e6add499b7d3",
"filesize": 112197648,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAC_VM_KVM-v6-build0058-FORTINET.out.kvm.qcow2",
"version": "6.0.3",
@@ -105,6 +126,20 @@
"filesize": 62771200,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_datadrive.qcow2",
"version": "6.6.1",
"md5sum": "9bbaa1ce1508b4af1f43ba00879269f9",
"filesize": 197568,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_datadrive.qcow2",
"version": "6.4.x, 6.5.x",
"md5sum": "3f7173307047cf562f55ed2f99450c10",
"filesize": 197568,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAC_VM_KVM-ALL-DATADRIVE.qcow2",
"version": "All",
@@ -114,6 +149,27 @@
}
],
"versions": [
{
"name": "6.6.1",
"images": {
"hda_disk_image": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_fackvm.qcow2",
"hdb_disk_image": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_datadrive.qcow2"
}
},
{
"name": "6.5.5",
"images": {
"hda_disk_image": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_fackvm.qcow2",
"hdb_disk_image": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_datadrive.qcow2"
}
},
{
"name": "6.4.9",
"images": {
"hda_disk_image": "FAC_VM_KVM-v6.4.9-build1067-FORTINET.out.kvm_fackvm.qcow2",
"hdb_disk_image": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_datadrive.qcow2"
}
},
{
"name": "6.0.3",
"images": {
+42
View File
@@ -28,6 +28,13 @@
"kvm": "allow"
},
"images": [
{
"filename": "FGT_VM64_KVM-v7.4.4.F-build2573-FORTINET.out.kvm.qcow2",
"version": "7.4.4",
"md5sum": "dfe0e78827ec728631539669001bb23f",
"filesize": 100728832,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.4.3.F-build2573-FORTINET.out.kvm.qcow2",
"version": "7.4.3",
@@ -42,6 +49,13 @@
"filesize": 116064256,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.2.8.M-build1639-FORTINET.out.kvm_fortios.qcow2",
"version": "7.2.8",
"md5sum": "5c8fd4baf80aeb2999d4be5a9c49eb3d",
"filesize": 89980928,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.2.7.M-build1577-FORTINET.out.kvm.qcow2",
"version": "7.2.7",
@@ -77,6 +91,13 @@
"filesize": 86704128,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.0.15.M-build0601-FORTINET.out.kvm.qcow2",
"version": "7.0.15",
"md5sum": "423f50378b7e93098ab765c3dd3a788f",
"filesize": 77398016,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v7.0.14.M-build0601-FORTINET.out.kvm.qcow2",
"version": "7.0.14",
@@ -367,6 +388,13 @@
}
],
"versions": [
{
"name": "7.4.4",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v7.4.4.F-build2573-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.3",
"images": {
@@ -381,6 +409,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.8",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v7.2.8.M-build1639-FORTINET.out.kvm_fortios.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.7",
"images": {
@@ -416,6 +451,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.15",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v7.0.15.M-build0601-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.14",
"images": {
+42
View File
@@ -29,6 +29,13 @@
"kvm": "allow"
},
"images": [
{
"filename": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
"version": "7.4.23",
"md5sum": "b01d9f86aa27c538407d518df1326863",
"filesize": 346107904,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
"version": "7.4.2",
@@ -43,6 +50,13 @@
"filesize": 309387264,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
"version": "7.2.5",
"md5sum": "754326845096afd909ec45d98f8d5a83",
"filesize": 278401024,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.2.4-build1460-FORTINET.out.kvm.qcow2",
"version": "7.2.4",
@@ -64,6 +78,13 @@
"filesize": 242814976,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
"version": "7.0.12",
"md5sum": "5b6f6a2b8bc00e56337aa7023a9025cf",
"filesize": 249520128,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
"version": "7.0.11",
@@ -256,6 +277,13 @@
}
],
"versions": [
{
"name": "7.4.3",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.2",
"images": {
@@ -270,6 +298,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.5",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.4",
"images": {
@@ -291,6 +326,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.12",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.11",
"images": {
+56
View File
@@ -28,6 +28,27 @@
"kvm": "allow"
},
"images": [
{
"filename": "FWB_KVM-v7.6.0.F-build0962-FORTINET.out.kvm_boot.qcow2",
"version": "7.6.0",
"md5sum": "e94aa4af7ed0a12bd6084f0d74a2a96e",
"filesize": 329187840,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FWB_KVM-v7.4.3-build0638-FORTINET.out.kvm_boot.qcow2",
"version": "7.4.3",
"md5sum": "3c0ac11a6d80a319a4fe460aff5bc66c",
"filesize": 303497728,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FWB_KVM-v7.2.8-build0400-FORTINET.out.kvm_boot.qcow2",
"version": "7.2.8",
"md5sum": "367307242e6855dc190df089d196e712",
"filesize": 257950208,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FWB_KVM-v7.2.1-build0330-FORTINET.out.kvm.boot.qcow2",
"version": "7.2.1",
@@ -35,6 +56,13 @@
"filesize": 260506112,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FWB_KVM-v7.0.10-build0166-FORTINET.out.kvm_boot.qcow2",
"version": "7.0.10",
"md5sum": "ff9d4b827c4e41c1b38e59359ba05487",
"filesize": 257556992,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FWB_KVM-v7.0.6-build0140-FORTINET.out.kvm.boot.qcow2",
"version": "7.0.6",
@@ -150,6 +178,27 @@
}
],
"versions": [
{
"name": "7.6.0",
"images": {
"hda_disk_image": "FWB_KVM-v7.6.0.F-build0962-FORTINET.out.kvm_boot.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.4.3",
"images": {
"hda_disk_image": "FWB_KVM-v7.4.3-build0638-FORTINET.out.kvm_boot.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.8",
"images": {
"hda_disk_image": "FWB_KVM-v7.2.8-build0400-FORTINET.out.kvm_boot.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.2.1",
"images": {
@@ -157,6 +206,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.10",
"images": {
"hda_disk_image": "FWB_KVM-v7.0.10-build0166-FORTINET.out.kvm_boot.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "7.0.6",
"images": {
@@ -12,18 +12,19 @@
"status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "16 GB RAM is the bare minimum; you should use 32/64 GB in production deplyments.\nDefault credentials:\n- CLI: admin / abc123\n- WebUI: super / juniper123",
"usage": "16 GB RAM is the bare minimum; you should use 32/64 GB in production deployments.\nDefault credentials:\n- CLI: admin / abc123\n- WebUI: super / juniper123",
"symbol": "juniper-vqfx.svg",
"port_name_format": "em{0}",
"qemu": {
"adapter_type": "e1000",
"adapters": 4,
"ram": 16384,
"cpus": 4,
"hda_disk_interface": "ide",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-smp 4 -nographic"
"options": "-nographic -machine q35,smbios-entry-point-type=32"
},
"images": [
{
@@ -34,7 +34,7 @@
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-nographic"
"options": "-nographic -machine q35,smbios-entry-point-type=32"
},
"images": [
{
+1 -1
View File
@@ -26,7 +26,7 @@
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-nographic -enable-kvm"
"options": "-nographic -enable-kvm -machine q35,smbios-entry-point-type=32"
},
"images": [
{
+2 -1
View File
@@ -20,11 +20,12 @@
"adapter_type": "virtio-net-pci",
"adapters": 13,
"ram": 4096,
"cpus": 4,
"hda_disk_interface": "ide",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-nographic -enable-kvm -smp cpus=3"
"options": "-nographic -enable-kvm -machine q35,smbios-entry-point-type=32"
},
"images": [
{
+1 -1
View File
@@ -23,7 +23,7 @@
"arch": "x86_64",
"console_type": "vnc",
"kvm": "require",
"options": "-nographic"
"options": "-nographic -machine q35,smbios-entry-point-type=32"
},
"images": [
{
+2 -1
View File
@@ -19,11 +19,12 @@
"adapter_type": "virtio-net-pci",
"adapters": 12,
"ram": 1024,
"cpus": 2,
"hda_disk_interface": "ide",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-nographic -smp 2"
"options": "-nographic -machine q35,smbios-entry-point-type=32"
},
"images": [
{
+1 -1
View File
@@ -25,7 +25,7 @@
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-nographic -enable-kvm"
"options": "-nographic -enable-kvm -machine q35,smbios-entry-point-type=32"
},
"images": [
{
+2 -1
View File
@@ -19,11 +19,12 @@
"adapter_type": "vmxnet3",
"adapters": 6,
"ram": 4096,
"cpus": 2,
"hda_disk_interface": "ide",
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-smp 2"
"options": "-machine q35,smbios-entry-point-type=32"
},
"images": [
{
@@ -16,6 +16,6 @@
"docker": {
"adapters": 16,
"image": "gns3/openvswitch:latest",
"environment": "MANAGEMENT_INTERFACE=1"
"environment": "MANAGEMENT_INTERFACE=eth0"
}
}
+2 -2
View File
@@ -26,7 +26,7 @@
},
"images": [
{
"filename": "OPNsense-24.1-OpenSSL-nano-amd64.img",
"filename": "OPNsense-24.1-nano-amd64.img",
"version": "24.1",
"md5sum": "ea8472df2c272419b7834cddaf68048d",
"filesize": 3221225472,
@@ -72,7 +72,7 @@
{
"name": "24.1",
"images": {
"hda_disk_image": "OPNsense-24.1-OpenSSL-nano-amd64.img"
"hda_disk_image": "OPNsense-24.1-nano-amd64.img"
}
},
{
+26
View File
@@ -28,6 +28,20 @@
},
"images": [
{
"filename": "PA-VM-KVM-11.0.0.qcow2",
"version": "11.0.0",
"md5sum": "fc54b0e680ca2bcecb5522430e420f06",
"filesize": 4130865152,
"download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/"
},
{
"filename": "PA-VM-KVM-10.2.3.qcow2",
"version": "10.2.3",
"md5sum": "0e7b2a52d1447186d335ef9a1a197c6c",
"filesize": 5298585600,
"download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/"
},
{
"filename": "PA-VM-KVM-10.1.0.qcow2",
"version": "10.1.0",
"md5sum": "8266fd412a22694749f2cd4afcd5fa33",
@@ -128,6 +142,18 @@
],
"versions": [
{
"name": "11.0.0",
"images": {
"hda_disk_image": "PA-VM-KVM-11.0.0.qcow2"
}
},
{
"name": "10.2.3",
"images": {
"hda_disk_image": "PA-VM-KVM-10.2.3.qcow2"
}
},
{
"name": "10.1.0",
"images": {
"hda_disk_image": "PA-VM-KVM-10.1.0.qcow2"
+27 -3
View File
@@ -13,18 +13,27 @@
"status": "stable",
"maintainer": "Brent Stewart",
"maintainer_email": "brent@stewart.tc",
"usage": "Your default account will have sudo priviledges. Squil and Squert username and password are configured in the Setup wizard. MySQL root is set to null. For more info see https://github.com/Security-Onion-Solutions/security-onion/wiki/Passwords.",
"usage": "Your default account will have sudo privileges. Squil and Squert username and password are configured in the Setup wizard. MySQL root is set to null. For more info see https://github.com/Security-Onion-Solutions/security-onion/wiki/Passwords.",
"symbol": "securityonion-logo.png",
"qemu": {
"adapter_type": "e1000",
"adapters": 2,
"ram": 3072,
"ram": 4096,
"hda_disk_interface": "ide",
"arch": "x86_64",
"console_type": "vnc",
"kvm": "allow"
"kvm": "allow",
"options": "-cpu host"
},
"images": [
{
"filename": "securityonion-2.4.80-20240624.iso",
"version": "2.4.80-20240624",
"md5sum": "139f9762e926f9cb3c4a9528a3752c31",
"filesize": 12391022592,
"download_url": "https://github.com/Security-Onion-Solutions/securityonion/blob/2.4/main/DOWNLOAD_AND_VERIFY_ISO.md",
"direct_download_url": "https://download.securityonion.net/file/securityonion/securityonion-2.4.80-20240624.iso"
},
{
"filename": "securityonion-16.04.7.1.iso",
"version": "16.04.7.1",
@@ -49,6 +58,14 @@
"download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/",
"direct_download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.4.iso"
},
{
"filename": "empty100G.qcow2",
"version": "1.0",
"md5sum": "5d9fec18a980f13002028491259f158d",
"filesize": 198656,
"download_url": "https://github.com/riverbed/Riverbed-Community-Toolkit/raw/master/SteelHead/GNS3",
"direct_download_url": "https://github.com/riverbed/Riverbed-Community-Toolkit/raw/master/SteelHead/GNS3/empty100G.qcow2"
},
{
"filename": "empty30G.qcow2",
"version": "1.0",
@@ -59,6 +76,13 @@
}
],
"versions": [
{
"name": "2.4.80-20240624",
"images": {
"hda_disk_image": "empty100G.qcow2",
"cdrom_image": "securityonion-2.4.80-20240624.iso"
}
},
{
"name": "16.04.7.1",
"images": {
+1 -1
View File
@@ -14,7 +14,7 @@
"symbol": "linux_guest.svg",
"docker": {
"adapters": 1,
"image": "gns3/ubuntu:focal",
"image": "gns3/ubuntu:noble",
"console_type": "telnet"
}
}
+5 -2
View File
@@ -29,6 +29,7 @@ import shutil
import platformdirs
from gns3server.utils import parse_version
from gns3server.config import Config
from gns3server.utils.asyncio import locking
from gns3server.compute.base_manager import BaseManager
from gns3server.compute.docker.docker_vm import DockerVM
@@ -88,7 +89,7 @@ class Docker(BaseManager):
f"{stdout.decode('utf-8', errors='ignore').strip()}")
except OSError as e:
raise DockerError(f"Could not install busybox: {e}")
raise DockerError("No busybox executable could be found")
raise DockerError("No busybox executable could be found, please install busybox (apt install busybox-static on Debian/Ubuntu) and make sure it is in your PATH")
@staticmethod
def resources_path():
@@ -96,8 +97,10 @@ class Docker(BaseManager):
Get the Docker resources storage directory
"""
server_config = Config.instance().get_section_config("Server")
appname = vendor = "GNS3"
docker_resources_dir = os.path.join(platformdirs.user_data_dir(appname, vendor, roaming=True), "docker", "resources")
resources_path = os.path.expanduser(server_config.get("resources_path", platformdirs.user_data_dir(appname, vendor, roaming=True)))
docker_resources_dir = os.path.join(resources_path, "docker")
os.makedirs(docker_resources_dir, exist_ok=True)
return docker_resources_dir
+1 -1
View File
@@ -226,7 +226,7 @@ class Qemu(BaseManager):
else:
try:
output = await subprocess_check_output(qemu_path, "-version", "-nographic")
match = re.search("version\s+([0-9a-z\-\.]+)", output)
match = re.search(r"version\s+([0-9a-z\-\.]+)", output)
if match:
version = match.group(1)
return version
+26 -9
View File
@@ -47,12 +47,18 @@ from ..base_node import BaseNode
from ...schemas.qemu import QEMU_OBJECT_SCHEMA, QEMU_PLATFORMS
from ...utils.asyncio import monitor_process
from ...utils.images import md5sum
from ...utils import macaddress_to_int, int_to_macaddress
from ...utils import macaddress_to_int, int_to_macaddress, is_ipv6_enabled
import logging
log = logging.getLogger(__name__)
# forbidden additional options
FORBIDDEN_OPTIONS = {"-blockdev", "-drive", "-hda", "-hdb", "-hdc", "-hdd",
"-fsdev", "-virtfs", "-nic", "-netdev"}
FORBIDDEN_OPTIONS |= {"-" + opt for opt in FORBIDDEN_OPTIONS
if opt.startswith("-") and not opt.startswith("--")}
class QemuVM(BaseNode):
module_name = 'qemu'
@@ -1672,13 +1678,14 @@ class QemuVM(BaseNode):
if self._console:
console_host = self._manager.port_manager.console_host
if console_host == "0.0.0.0":
if socket.has_ipv6:
# to fix an issue with Qemu when IPv4 is not enabled
# see https://github.com/GNS3/gns3-gui/issues/2352
# FIXME: consider making this more global (not just for Qemu + SPICE)
console_host = "::"
else:
raise QemuError("IPv6 must be enabled in order to use the SPICE console")
try:
if is_ipv6_enabled():
# to fix an issue with Qemu when IPv4 is not enabled
# see https://github.com/GNS3/gns3-gui/issues/2352
# FIXME: consider making this more global (not just for Qemu + SPICE)
console_host = "::"
except OSError as e:
raise QemuError("Could not check if IPv6 is enabled: {}".format(e))
return ["-spice",
"addr={},port={},disable-ticketing".format(console_host, self._console),
"-vga", "qxl"]
@@ -2423,9 +2430,19 @@ class QemuVM(BaseNode):
command.extend(self._tpm_options())
if additional_options:
try:
command.extend(shlex.split(additional_options))
additional_opt_list = shlex.split(additional_options)
except ValueError as e:
raise QemuError("Invalid additional options: {} error {}".format(additional_options, e))
allow_unsafe_options = self.manager.config.get_section_config("Qemu").getboolean(
"allow_unsafe_options",
False
)
if allow_unsafe_options is False:
for opt in additional_opt_list:
if opt in FORBIDDEN_OPTIONS:
raise QemuError("Forbidden additional option: {}".format(opt))
command.extend(additional_opt_list)
# avoiding mouse offset (see https://github.com/GNS3/gns3-server/issues/2335)
if self._console_type == "vnc":
command.extend(['-machine', 'usb=on', '-device', 'usb-tablet'])
+1 -1
View File
@@ -701,7 +701,7 @@ class VMware(BaseManager):
path = ctypes.create_unicode_buffer(ctypes.wintypes.MAX_PATH)
ctypes.windll.shell32.SHGetFolderPathW(None, 5, None, 0, path)
documents_folder = path.value
return ['{}\My Virtual Machines'.format(documents_folder), '{}\Virtual Machines'.format(documents_folder)]
return [r'{}\My Virtual Machines'.format(documents_folder), r'{}\Virtual Machines'.format(documents_folder)]
elif sys.platform.startswith("darwin"):
return [os.path.expanduser("~/Documents/Virtual Machines.localized")]
else:
@@ -15,7 +15,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
no ip domain-lookup
no ip domain lookup
!
!
!
@@ -14,7 +14,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
no ip domain-lookup
no ip domain lookup
!
!
ip tcp synwait-time 5
+13 -7
View File
@@ -248,13 +248,19 @@ class Controller:
if "iou_license" in controller_settings:
self._iou_license_settings = controller_settings["iou_license"]
previous_version = controller_settings.get("version")
log.info("Comparing controller version {} with config version {}".format(__version__, previous_version))
if not previous_version or \
parse_version(__version__.split("+")[0]) > parse_version(previous_version.split("+")[0]):
self._appliance_manager.install_builtin_appliances()
elif not os.listdir(self._appliance_manager.builtin_appliances_path()):
self._appliance_manager.install_builtin_appliances()
# install the built-in appliances if needed
server_config = Config.instance().get_section_config("Server")
if server_config.getboolean("install_builtin_appliances", True):
previous_version = controller_settings.get("version")
log.info("Comparing controller version {} with config version {}".format(__version__, previous_version))
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()
elif not os.listdir(builtin_appliances_path):
self._appliance_manager.install_builtin_appliances()
else:
log.info("Built-in appliances are installed in '{}'".format(builtin_appliances_path))
self._appliance_manager.appliances_etag = controller_settings.get("appliances_etag")
self._appliance_manager.load_appliances()
+3 -1
View File
@@ -87,8 +87,10 @@ class ApplianceManager:
Get the built-in appliance storage directory
"""
server_config = Config.instance().get_section_config("Server")
appname = vendor = "GNS3"
appliances_dir = os.path.join(platformdirs.user_data_dir(appname, vendor, roaming=True), "appliances")
resources_path = os.path.expanduser(server_config.get("resources_path", platformdirs.user_data_dir(appname, vendor, roaming=True)))
appliances_dir = os.path.join(resources_path, "appliances")
if delete_first:
shutil.rmtree(appliances_dir, ignore_errors=True)
os.makedirs(appliances_dir, exist_ok=True)
+1 -1
View File
@@ -484,7 +484,7 @@ class Compute:
return self._getUrl(path)
async def _run_http_query(self, method, path, data=None, timeout=20, raw=False):
with async_timeout.timeout(timeout):
async with async_timeout.timeout(delay=timeout):
url = self._getUrl(path)
headers = {}
headers['content-type'] = 'application/json'
+9 -9
View File
@@ -32,7 +32,7 @@ log = logging.getLogger(__name__)
CHUNK_SIZE = 1024 * 8 # 8KB
async def export_project(zstream, project, temporary_dir, include_images=False, include_snapshots=False, keep_compute_id=False, allow_all_nodes=False, reset_mac_addresses=False):
async def export_project(zstream, project, temporary_dir, include_images=False, include_snapshots=False, keep_compute_ids=False, allow_all_nodes=False, reset_mac_addresses=False):
"""
Export a project to a zip file.
@@ -44,9 +44,9 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
:param temporary_dir: A temporary dir where to store intermediate data
:param include_images: save OS images to the zip file
:param include_snapshots: save snapshots to the zip file
:param keep_compute_id: If false replace all compute id by local (standard behavior for .gns3project to make it portable)
:param allow_all_nodes: Allow all nodes type to be include in the zip even if not portable
:param reset_mac_addresses: Reset MAC addresses for every nodes.
:param keep_compute_ids: If false replace all compute IDs y local (standard behavior for .gns3project to make it portable)
:param allow_all_nodes: Allow all nodes type to be included in the zip even if not portable
:param reset_mac_addresses: Reset MAC addresses for each node.
"""
# To avoid issue with data not saved we disallow the export of a running project
@@ -62,7 +62,7 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
# First we process the .gns3 in order to be sure we don't have an error
for file in os.listdir(project._path):
if file.endswith(".gns3"):
await _patch_project_file(project, os.path.join(project._path, file), zstream, include_images, keep_compute_id, allow_all_nodes, temporary_dir, reset_mac_addresses)
await _patch_project_file(project, os.path.join(project._path, file), zstream, include_images, keep_compute_ids, allow_all_nodes, temporary_dir, reset_mac_addresses)
# Export the local files
for root, dirs, files in os.walk(project._path, topdown=True, followlinks=False):
@@ -170,7 +170,7 @@ def _is_exportable(path, include_snapshots=False):
return True
async def _patch_project_file(project, path, zstream, include_images, keep_compute_id, allow_all_nodes, temporary_dir, reset_mac_addresses):
async def _patch_project_file(project, path, zstream, include_images, keep_compute_ids, allow_all_nodes, temporary_dir, reset_mac_addresses):
"""
Patch a project file (.gns3) to export a project.
The .gns3 file is renamed to project.gns3
@@ -197,7 +197,7 @@ async def _patch_project_file(project, path, zstream, include_images, keep_compu
if not allow_all_nodes and node["node_type"] in ["virtualbox", "vmware"]:
raise aiohttp.web.HTTPConflict(text="Projects with a {} node cannot be exported".format(node["node_type"]))
if not keep_compute_id:
if not keep_compute_ids:
node["compute_id"] = "local" # To make project portable all node by default run on local
if "properties" in node and node["node_type"] != "docker":
@@ -215,7 +215,7 @@ async def _patch_project_file(project, path, zstream, include_images, keep_compu
if value is None or value.strip() == '':
continue
if not keep_compute_id: # If we keep the original compute we can keep the image path
if not keep_compute_ids: # If we keep the original compute we can keep the image path
node["properties"][prop] = os.path.basename(value)
if include_images is True:
@@ -225,7 +225,7 @@ async def _patch_project_file(project, path, zstream, include_images, keep_compu
'image_type': node['node_type']
})
if not keep_compute_id:
if not keep_compute_ids:
topology["topology"]["computes"] = [] # Strip compute information because could contain secret info like password
local_images = set([i['image'] for i in images if i['compute_id'] == 'local'])
+3 -3
View File
@@ -38,7 +38,7 @@ Handle the import of project from a .gns3project
"""
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_id=False,
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_ids=False,
auto_start=False, auto_open=False, auto_close=True):
"""
Import a project contain in a zip file
@@ -50,7 +50,7 @@ async def import_project(controller, project_id, stream, location=None, name=Non
:param stream: A io.BytesIO of the zipfile
:param location: Directory for the project if None put in the default directory
:param name: Wanted project name, generate one from the .gns3 if None
:param keep_compute_id: If true do not touch the compute id
:param keep_compute_ids: keep compute IDs unchanged
:returns: Project
"""
@@ -124,7 +124,7 @@ async def import_project(controller, project_id, stream, location=None, name=Non
drawing["drawing_id"] = str(uuid.uuid4())
# Modify the compute id of the node depending of compute capacity
if not keep_compute_id:
if not keep_compute_ids:
# For some VM type we move them to the GNS3 VM if possible
# unless it's a linux host without GNS3 VM
if not sys.platform.startswith("linux") or controller.has_compute("vm"):
+7 -3
View File
@@ -192,7 +192,11 @@ class Project:
if os.path.exists(snapshot_dir):
for snap in os.listdir(snapshot_dir):
if snap.endswith(".gns3project"):
snapshot = Snapshot(self, filename=snap)
try:
snapshot = Snapshot(self, filename=snap)
except ValueError:
log.error("Invalid snapshot file: {}".format(snap))
continue
self._snapshots[snapshot.id] = snapshot
# Create the project on demand on the compute node
@@ -1062,7 +1066,7 @@ class Project:
with tempfile.TemporaryDirectory(dir=working_dir) as tmpdir:
# Do not compress the exported project when duplicating
with aiozipstream.ZipFile(compression=zipfile.ZIP_STORED) as zstream:
await export_project(zstream, self, tmpdir, keep_compute_id=True, allow_all_nodes=True, reset_mac_addresses=reset_mac_addresses)
await export_project(zstream, self, tmpdir, keep_compute_ids=True, allow_all_nodes=True, reset_mac_addresses=reset_mac_addresses)
# export the project to a temporary location
project_path = os.path.join(tmpdir, "project.gns3p")
@@ -1073,7 +1077,7 @@ class Project:
# import the temporary project
with open(project_path, "rb") as f:
project = await import_project(self._controller, str(uuid.uuid4()), f, location=location, name=name, keep_compute_id=True)
project = await import_project(self._controller, str(uuid.uuid4()), f, location=location, name=name, keep_compute_ids=True)
log.info("Project '{}' duplicated in {:.4f} seconds".format(project.name, time.time() - begin))
except (ValueError, OSError, UnicodeEncodeError) as e:
+6 -8
View File
@@ -52,15 +52,13 @@ class Snapshot:
self._project = project
if name:
self._name = name
self._created_at = datetime.now().timestamp()
filename = self._name + "_" + datetime.utcfromtimestamp(self._created_at).replace(tzinfo=None).strftime(FILENAME_TIME_FORMAT) + ".gns3project"
self._created_at = datetime.now(timezone.utc).timestamp()
filename = self._name + "_" + datetime.fromtimestamp(self._created_at, tz=timezone.utc).replace(tzinfo=None).strftime(FILENAME_TIME_FORMAT) + ".gns3project"
else:
self._name = filename.split("_")[0]
self._name = filename.rsplit("_", 2)[0]
datestring = filename.replace(self._name + "_", "").split(".")[0]
try:
self._created_at = datetime.strptime(datestring, FILENAME_TIME_FORMAT).replace(tzinfo=timezone.utc).timestamp()
except ValueError:
self._created_at = datetime.utcnow().timestamp()
self._created_at = datetime.strptime(datestring, FILENAME_TIME_FORMAT).replace(tzinfo=timezone.utc).timestamp()
self._path = os.path.join(project.path, "snapshots", filename)
@property
@@ -98,7 +96,7 @@ class Snapshot:
with tempfile.TemporaryDirectory(dir=snapshot_directory) as tmpdir:
# Do not compress the snapshots
with aiozipstream.ZipFile(compression=zipfile.ZIP_STORED) as zstream:
await export_project(zstream, self._project, tmpdir, keep_compute_id=True, allow_all_nodes=True)
await export_project(zstream, self._project, tmpdir, keep_compute_ids=True, allow_all_nodes=True)
async with aiofiles.open(self.path, 'wb') as f:
async for chunk in zstream:
await f.write(chunk)
+7
View File
@@ -17,6 +17,7 @@
CLASSIC_SYMBOL_THEME = {"cloud": ":/symbols/classic/cloud.svg",
"nat": ":/symbols/classic/nat.svg",
"ethernet_switch": ":/symbols/classic/ethernet_switch.svg",
"ethernet_hub": ":/symbols/classic/hub.svg",
"frame_relay_switch": ":/symbols/classic/frame_relay_switch.svg",
@@ -32,6 +33,7 @@ CLASSIC_SYMBOL_THEME = {"cloud": ":/symbols/classic/cloud.svg",
"docker_guest": ":/symbols/classic/docker_guest.svg"}
AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/blue/cloud.svg",
"nat": ":/symbols/affinity/square/blue/nat.svg",
"ethernet_switch": ":/symbols/affinity/square/blue/switch.svg",
"ethernet_hub": ":/symbols/affinity/square/blue/hub.svg",
"frame_relay_switch.svg": ":/symbols/affinity/square/blue/isdn.svg",
@@ -47,6 +49,7 @@ AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/blue/cl
"docker_guest": ":/symbols/affinity/square/blue/docker.svg"}
AFFINITY_SQUARE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/red/cloud.svg",
"nat": ":/symbols/affinity/square/red/nat.svg",
"ethernet_switch": ":/symbols/affinity/square/red/switch.svg",
"ethernet_hub": ":/symbols/affinity/square/red/hub.svg",
"frame_relay_switch": ":/symbols/affinity/square/red/isdn.svg",
@@ -62,6 +65,7 @@ AFFINITY_SQUARE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/red/clou
"docker_guest": ":/symbols/affinity/square/red/docker.svg"}
AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/gray/cloud.svg",
"nat": ":/symbols/affinity/square/gray/nat.svg",
"ethernet_switch": ":/symbols/affinity/square/gray/switch.svg",
"ethernet_hub": ":/symbols/affinity/square/gray/hub.svg",
"frame_relay_switch": ":/symbols/affinity/square/gray/isdn.svg",
@@ -77,6 +81,7 @@ AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/gray/cl
"docker_guest": ":/symbols/affinity/square/gray/docker.svg"}
AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/blue/cloud.svg",
"nat": ":/symbols/affinity/circle/blue/nat.svg",
"ethernet_switch": ":/symbols/affinity/circle/blue/switch.svg",
"ethernet_hub": ":/symbols/affinity/circle/blue/hub.svg",
"frame_relay_switch": ":/symbols/affinity/circle/blue/isdn.svg",
@@ -92,6 +97,7 @@ AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/blue/cl
"docker_guest": ":/symbols/affinity/circle/blue/docker.svg"}
AFFINITY_CIRCLE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/red/cloud.svg",
"nat": ":/symbols/affinity/circle/red/nat.svg",
"ethernet_switch": ":/symbols/affinity/circle/red/switch.svg",
"ethernet_hub": ":/symbols/affinity/circle/red/hub.svg",
"frame_relay_switch": ":/symbols/affinity/circle/red/isdn.svg",
@@ -107,6 +113,7 @@ AFFINITY_CIRCLE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/red/clou
"docker_guest": ":/symbols/affinity/circle/red/docker.svg"}
AFFINITY_CIRCLE_GRAY_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/gray/cloud.svg",
"nat": ":/symbols/affinity/circle/gray/nat.svg",
"ethernet_switch": ":/symbols/affinity/circle/gray/switch.svg",
"ethernet_hub": ":/symbols/affinity/circle/gray/hub.svg",
"frame_relay_switch": ":/symbols/affinity/circle/gray/isdn.svg",
+1 -1
View File
@@ -63,7 +63,7 @@ class TemplateManager:
builtins = []
if Config.instance().get_section_config("Server").getboolean("enable_builtin_templates", True):
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "cloud"), {"template_type": "cloud", "name": "Cloud", "default_name_format": "Cloud{0}", "category": 2, "symbol": ":/symbols/cloud.svg"}, builtin=True))
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "nat"), {"template_type": "nat", "name": "NAT", "default_name_format": "NAT{0}", "category": 2, "symbol": ":/symbols/cloud.svg"}, builtin=True))
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "nat"), {"template_type": "nat", "name": "NAT", "default_name_format": "NAT{0}", "category": 2, "symbol": ":/symbols/nat.svg"}, builtin=True))
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "vpcs"), {"template_type": "vpcs", "name": "VPCS", "default_name_format": "PC{0}", "category": 2, "symbol": ":/symbols/vpcs_guest.svg", "properties": {"base_script_file": "vpcs_base_config.txt"}}, builtin=True))
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "ethernet_switch"), {"template_type": "ethernet_switch", "console_type": "none", "name": "Ethernet switch", "default_name_format": "Switch{0}", "category": 1, "symbol": ":/symbols/ethernet_switch.svg"}, builtin=True))
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "ethernet_hub"), {"template_type": "ethernet_hub", "name": "Ethernet hub", "default_name_format": "Hub{0}", "category": 1, "symbol": ":/symbols/hub.svg"}, builtin=True))
+1 -1
View File
@@ -189,7 +189,7 @@ class UDPLink(Link):
:returns: Node where the capture should run
"""
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub")
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub", "frame_relay_switch", "atm_switch")
for node in self._nodes:
if node["node"].compute.id == "local" and node["node"].node_type in ALWAYS_RUNNING_NODES_TYPE and node["node"].status == "started":
+1 -1
View File
@@ -57,7 +57,7 @@ class CrashReport:
Report crash to a third party service
"""
DSN = "https://535981c5fae1a87b7e8d993590c07c27@o19455.ingest.sentry.io/38482"
DSN = "https://46838dcfc8a27b89afc8d5587c0f6230@o19455.ingest.us.sentry.io/38482"
_instance = None
def __init__(self):
@@ -268,7 +268,7 @@ class ATMSwitchHandler:
response.json({"pcap_file_path": pcap_file_path})
@Route.post(
r"/projects/{project_id}/atm_relay_switch/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture",
r"/projects/{project_id}/atm_switch/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture",
parameters={
"project_id": "Project UUID",
"node_id": "Node UUID",
@@ -290,7 +290,7 @@ class ATMSwitchHandler:
response.set_status(204)
@Route.get(
r"/projects/{project_id}/atm_relay_switch/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/pcap",
r"/projects/{project_id}/atm_switch/nodes/{node_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/pcap",
description="Stream the pcap capture file",
parameters={
"project_id": "Project UUID",
@@ -319,6 +319,10 @@ class ProjectHandler:
reset_mac_addresses = True
else:
reset_mac_addresses = False
if request.query.get("keep_compute_ids", "no").lower() == "yes":
keep_compute_ids = True
else:
keep_compute_ids = False
compression_query = request.query.get("compression", "zip").lower()
if compression_query == "zip":
@@ -336,9 +340,17 @@ class ProjectHandler:
working_dir = os.path.abspath(os.path.join(project.path, os.pardir))
with tempfile.TemporaryDirectory(dir=working_dir) as tmpdir:
with aiozipstream.ZipFile(compression=compression) as zstream:
await export_project(zstream, project, tmpdir, include_snapshots=include_snapshots, include_images=include_images, reset_mac_addresses=reset_mac_addresses)
await export_project(
zstream,
project,
tmpdir,
include_snapshots=include_snapshots,
include_images=include_images,
reset_mac_addresses=reset_mac_addresses,
keep_compute_ids=keep_compute_ids
)
# We need to do that now because export could failed and raise an HTTP error
# We need to do that now because export could fail and raise an HTTP error
# that why response start need to be the later possible
response.content_type = 'application/gns3project'
response.headers['CONTENT-DISPOSITION'] = 'attachment; filename="{}.gns3project"'.format(project.name)
@@ -350,7 +362,7 @@ class ProjectHandler:
log.info("Project '{}' exported in {:.4f} seconds".format(project.name, time.time() - begin))
# Will be raise if you have no space left or permission issue on your temporary directory
# Will be raised if you have no space left or permission issue on your temporary directory
# RuntimeError: something was wrong during the zip process
except (ValueError, OSError, RuntimeError) as e:
raise aiohttp.web.HTTPNotFound(text="Cannot export project: {}".format(str(e)))
+3 -3
View File
@@ -235,9 +235,9 @@ def run():
return
log.info("HTTP authentication is enabled with username '{}'".format(user))
# we only support Python 3 version >= 3.7
if sys.version_info < (3, 7, 0):
raise SystemExit("Python 3.7 or higher is required")
# we only support Python 3 version >= 3.8
if sys.version_info < (3, 8, 0):
raise SystemExit("Python 3.8 or higher is required")
user_log.info("Running with Python {major}.{minor}.{micro} and has PID {pid}".format(major=sys.version_info[0], minor=sys.version_info[1],
micro=sys.version_info[2], pid=os.getpid()))
+3 -3
View File
@@ -36,7 +36,7 @@
<body class="mat-app-background" oncontextmenu="return false;">
<app-root></app-root>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-5D6FZL9923"></script>
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-0BT7QQV1W1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
@@ -44,8 +44,8 @@
}
gtag('js', new Date());
gtag('config', 'G-5D6FZL9923');
gtag('config', 'G-0BT7QQV1W1');
</script>
<script src="runtime.ecefb4ce510d1c218e7d.js" defer></script><script src="polyfills-es5.865074f5cd9a121111a2.js" nomodule defer></script><script src="polyfills.2f91a039d848e57ff02e.js" defer></script><script src="main.93bb4a803caf93e6752d.js" defer></script>
<script src="runtime.415291667f70565cd8ef.js" defer></script><script src="polyfills-es5.865074f5cd9a121111a2.js" nomodule defer></script><script src="polyfills.2f91a039d848e57ff02e.js" defer></script><script src="main.99a70a8d013fc974361c.js" defer></script>
</body></html>
@@ -1 +0,0 @@
(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[179],{98255:function(ue){function q(f){return Promise.resolve().then(function(){var B=new Error("Cannot find module '"+f+"'");throw B.code="MODULE_NOT_FOUND",B})}q.keys=function(){return[]},q.resolve=q,q.id=98255,ue.exports=q},82908:function(ue){ue.exports=function(f,B){(null==B||B>f.length)&&(B=f.length);for(var U=0,V=new Array(B);U<B;U++)V[U]=f[U];return V},ue.exports.default=ue.exports,ue.exports.__esModule=!0},36457:function(ue){ue.exports=function(f){if(Array.isArray(f))return f},ue.exports.default=ue.exports,ue.exports.__esModule=!0},35036:function(ue){ue.exports=function(f,B){var U=null==f?null:"undefined"!=typeof Symbol&&f[Symbol.iterator]||f["@@iterator"];if(null!=U){var N,b,V=[],Z=!0,w=!1;try{for(U=U.call(f);!(Z=(N=U.next()).done)&&(V.push(N.value),!B||V.length!==B);Z=!0);}catch(_){w=!0,b=_}finally{try{!Z&&null!=U.return&&U.return()}finally{if(w)throw b}}return V}},ue.exports.default=ue.exports,ue.exports.__esModule=!0},13969:function(ue){ue.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},ue.exports.default=ue.exports,ue.exports.__esModule=!0},6326:function(ue,q,f){var B=f(36457),U=f(35036),V=f(54850),Z=f(13969);ue.exports=function(N,b){return B(N)||U(N,b)||V(N,b)||Z()},ue.exports.default=ue.exports,ue.exports.__esModule=!0},54850:function(ue,q,f){var B=f(82908);ue.exports=function(V,Z){if(V){if("string"==typeof V)return B(V,Z);var w=Object.prototype.toString.call(V).slice(8,-1);if("Object"===w&&V.constructor&&(w=V.constructor.name),"Map"===w||"Set"===w)return Array.from(V);if("Arguments"===w||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w))return B(V,Z)}},ue.exports.default=ue.exports,ue.exports.__esModule=!0},26552:function(ue,q,f){ue.exports=f(55590)},61855:function(ue,q,f){"use strict";f.d(q,{ZT:function(){return U},mG:function(){return _},Jh:function(){return I},ev:function(){return R}});var B=function($,ae){return(B=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(se,ce){se.__proto__=ce}||function(se,ce){for(var le in ce)Object.prototype.hasOwnProperty.call(ce,le)&&(se[le]=ce[le])})($,ae)};function U($,ae){if("function"!=typeof ae&&null!==ae)throw new TypeError("Class extends value "+String(ae)+" is not a constructor or null");function se(){this.constructor=$}B($,ae),$.prototype=null===ae?Object.create(ae):(se.prototype=ae.prototype,new se)}function _($,ae,se,ce){return new(se||(se=Promise))(function(oe,Ae){function be(_t){try{qe(ce.next(_t))}catch(yt){Ae(yt)}}function it(_t){try{qe(ce.throw(_t))}catch(yt){Ae(yt)}}function qe(_t){_t.done?oe(_t.value):function(oe){return oe instanceof se?oe:new se(function(Ae){Ae(oe)})}(_t.value).then(be,it)}qe((ce=ce.apply($,ae||[])).next())})}function I($,ae){var ce,le,oe,Ae,se={label:0,sent:function(){if(1&oe[0])throw oe[1];return oe[1]},trys:[],ops:[]};return Ae={next:be(0),throw:be(1),return:be(2)},"function"==typeof Symbol&&(Ae[Symbol.iterator]=function(){return this}),Ae;function be(qe){return function(_t){return function(qe){if(ce)throw new TypeError("Generator is already executing.");for(;se;)try{if(ce=1,le&&(oe=2&qe[0]?le.return:qe[0]?le.throw||((oe=le.return)&&oe.call(le),0):le.next)&&!(oe=oe.call(le,qe[1])).done)return oe;switch(le=0,oe&&(qe=[2&qe[0],oe.value]),qe[0]){case 0:case 1:oe=qe;break;case 4:return se.label++,{value:qe[1],done:!1};case 5:se.label++,le=qe[1],qe=[0];continue;case 7:qe=se.ops.pop(),se.trys.pop();continue;default:if(!(oe=(oe=se.trys).length>0&&oe[oe.length-1])&&(6===qe[0]||2===qe[0])){se=0;continue}if(3===qe[0]&&(!oe||qe[1]>oe[0]&&qe[1]<oe[3])){se.label=qe[1];break}if(6===qe[0]&&se.label<oe[1]){se.label=oe[1],oe=qe;break}if(oe&&se.label<oe[2]){se.label=oe[2],se.ops.push(qe);break}oe[2]&&se.ops.pop(),se.trys.pop();continue}qe=ae.call($,se)}catch(_t){qe=[6,_t],le=0}finally{ce=oe=0}if(5&qe[0])throw qe[1];return{value:qe[0]?qe[1]:void 0,done:!0}}([qe,_t])}}}function R($,ae,se){if(se||2===arguments.length)for(var oe,ce=0,le=ae.length;ce<le;ce++)(oe||!(ce in ae))&&(oe||(oe=Array.prototype.slice.call(ae,0,ce)),oe[ce]=ae[ce]);return $.concat(oe||Array.prototype.slice.call(ae))}},739:function(ue,q,f){"use strict";f.d(q,{l3:function(){return w},_j:function(){return V},LC:function(){return Z},ZN:function(){return O},jt:function(){return b},pV:function(){return T},F4:function(){return S},IO:function(){return k},vP:function(){return I},SB:function(){return A},oB:function(){return D},eR:function(){return v},X$:function(){return N},ZE:function(){return F},k1:function(){return z}});var B=f(14105),U=f(18967),V=function K(){(0,U.Z)(this,K)},Z=function K(){(0,U.Z)(this,K)},w="*";function N(K,j){return{type:7,name:K,definitions:j,options:{}}}function b(K){var j=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{type:4,styles:j,timings:K}}function I(K){var j=arguments.length>1&&void 0!==arguments[1]?arguments[1]Line truncated
@@ -0,0 +1 @@
(self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[]).push([[179],{98255:function(ue){function q(f){return Promise.resolve().then(function(){var B=new Error("Cannot find module '"+f+"'");throw B.code="MODULE_NOT_FOUND",B})}q.keys=function(){return[]},q.resolve=q,q.id=98255,ue.exports=q},82908:function(ue){ue.exports=function(f,B){(null==B||B>f.length)&&(B=f.length);for(var U=0,V=new Array(B);U<B;U++)V[U]=f[U];return V},ue.exports.default=ue.exports,ue.exports.__esModule=!0},36457:function(ue){ue.exports=function(f){if(Array.isArray(f))return f},ue.exports.default=ue.exports,ue.exports.__esModule=!0},35036:function(ue){ue.exports=function(f,B){var U=null==f?null:"undefined"!=typeof Symbol&&f[Symbol.iterator]||f["@@iterator"];if(null!=U){var N,b,V=[],Z=!0,w=!1;try{for(U=U.call(f);!(Z=(N=U.next()).done)&&(V.push(N.value),!B||V.length!==B);Z=!0);}catch(_){w=!0,b=_}finally{try{!Z&&null!=U.return&&U.return()}finally{if(w)throw b}}return V}},ue.exports.default=ue.exports,ue.exports.__esModule=!0},13969:function(ue){ue.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},ue.exports.default=ue.exports,ue.exports.__esModule=!0},6326:function(ue,q,f){var B=f(36457),U=f(35036),V=f(54850),Z=f(13969);ue.exports=function(N,b){return B(N)||U(N,b)||V(N,b)||Z()},ue.exports.default=ue.exports,ue.exports.__esModule=!0},54850:function(ue,q,f){var B=f(82908);ue.exports=function(V,Z){if(V){if("string"==typeof V)return B(V,Z);var w=Object.prototype.toString.call(V).slice(8,-1);if("Object"===w&&V.constructor&&(w=V.constructor.name),"Map"===w||"Set"===w)return Array.from(V);if("Arguments"===w||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w))return B(V,Z)}},ue.exports.default=ue.exports,ue.exports.__esModule=!0},26552:function(ue,q,f){ue.exports=f(55590)},61855:function(ue,q,f){"use strict";f.d(q,{ZT:function(){return U},mG:function(){return _},Jh:function(){return I},ev:function(){return R}});var B=function($,ae){return(B=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(se,ce){se.__proto__=ce}||function(se,ce){for(var le in ce)Object.prototype.hasOwnProperty.call(ce,le)&&(se[le]=ce[le])})($,ae)};function U($,ae){if("function"!=typeof ae&&null!==ae)throw new TypeError("Class extends value "+String(ae)+" is not a constructor or null");function se(){this.constructor=$}B($,ae),$.prototype=null===ae?Object.create(ae):(se.prototype=ae.prototype,new se)}function _($,ae,se,ce){return new(se||(se=Promise))(function(oe,Ae){function be(_t){try{qe(ce.next(_t))}catch(yt){Ae(yt)}}function it(_t){try{qe(ce.throw(_t))}catch(yt){Ae(yt)}}function qe(_t){_t.done?oe(_t.value):function(oe){return oe instanceof se?oe:new se(function(Ae){Ae(oe)})}(_t.value).then(be,it)}qe((ce=ce.apply($,ae||[])).next())})}function I($,ae){var ce,le,oe,Ae,se={label:0,sent:function(){if(1&oe[0])throw oe[1];return oe[1]},trys:[],ops:[]};return Ae={next:be(0),throw:be(1),return:be(2)},"function"==typeof Symbol&&(Ae[Symbol.iterator]=function(){return this}),Ae;function be(qe){return function(_t){return function(qe){if(ce)throw new TypeError("Generator is already executing.");for(;se;)try{if(ce=1,le&&(oe=2&qe[0]?le.return:qe[0]?le.throw||((oe=le.return)&&oe.call(le),0):le.next)&&!(oe=oe.call(le,qe[1])).done)return oe;switch(le=0,oe&&(qe=[2&qe[0],oe.value]),qe[0]){case 0:case 1:oe=qe;break;case 4:return se.label++,{value:qe[1],done:!1};case 5:se.label++,le=qe[1],qe=[0];continue;case 7:qe=se.ops.pop(),se.trys.pop();continue;default:if(!(oe=(oe=se.trys).length>0&&oe[oe.length-1])&&(6===qe[0]||2===qe[0])){se=0;continue}if(3===qe[0]&&(!oe||qe[1]>oe[0]&&qe[1]<oe[3])){se.label=qe[1];break}if(6===qe[0]&&se.label<oe[1]){se.label=oe[1],oe=qe;break}if(oe&&se.label<oe[2]){se.label=oe[2],se.ops.push(qe);break}oe[2]&&se.ops.pop(),se.trys.pop();continue}qe=ae.call($,se)}catch(_t){qe=[6,_t],le=0}finally{ce=oe=0}if(5&qe[0])throw qe[1];return{value:qe[0]?qe[1]:void 0,done:!0}}([qe,_t])}}}function R($,ae,se){if(se||2===arguments.length)for(var oe,ce=0,le=ae.length;ce<le;ce++)(oe||!(ce in ae))&&(oe||(oe=Array.prototype.slice.call(ae,0,ce)),oe[ce]=ae[ce]);return $.concat(oe||Array.prototype.slice.call(ae))}},739:function(ue,q,f){"use strict";f.d(q,{l3:function(){return w},_j:function(){return V},LC:function(){return Z},ZN:function(){return O},jt:function(){return b},pV:function(){return T},F4:function(){return S},IO:function(){return k},vP:function(){return I},SB:function(){return A},oB:function(){return D},eR:function(){return v},X$:function(){return N},ZE:function(){return F},k1:function(){return z}});var B=f(14105),U=f(18967),V=function K(){(0,U.Z)(this,K)},Z=function K(){(0,U.Z)(this,K)},w="*";function N(K,j){return{type:7,name:K,definitions:j,options:{}}}function b(K){var j=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{type:4,styles:j,timings:K}}function I(K){var j=arguments.length>1&&void 0!==arguments[1]?arguments[1]Line truncated
@@ -1 +1 @@
!function(){"use strict";var e,v={},g={};function n(e){var a=g[e];if(void 0!==a)return a.exports;var t=g[e]={id:e,loaded:!1,exports:{}};return v[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=v,e=[],n.O=function(a,t,u,o){if(!t){var r=1/0;for(i=0;i<e.length;i++){t=e[i][0],u=e[i][1],o=e[i][2];for(var l=!0,f=0;f<t.length;f++)(!1&o||r>=o)&&Object.keys(n.O).every(function(b){return n.O[b](t[f])})?t.splice(f--,1):(l=!1,o<r&&(r=o));if(l){e.splice(i--,1);var s=u();void 0!==s&&(a=s)}}return a}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[t,u,o]},n.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(a,{a:a}),a},n.d=function(e,a){for(var t in a)n.o(a,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce(function(a,t){return n.f[t](e,a),a},[]))},n.u=function(e){return e+".49028ab13de5de406c90.js"},n.miniCssF=function(e){return"styles.f8555f2eecf8cf87f666.css"},n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},function(){var e={},a="gns3-web-ui:";n.l=function(t,u,o,i){if(e[t])e[t].push(u);else{var r,l;if(void 0!==o)for(var f=document.getElementsByTagName("script"),s=0;s<f.length;s++){var c=f[s];if(c.getAttribute("src")==t||c.getAttribute("data-webpack")==a+o){r=c;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,n.nc&&r.setAttribute("nonce",n.nc),r.setAttribute("data-webpack",a+o),r.src=n.tu(t)),e[t]=[u];var d=function(h,b){r.onerror=r.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],r.parentNode&&r.parentNode.removeChild(r),_&&_.forEach(function(m){return m(b)}),h)return h(b)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=d.bind(null,r.onerror),r.onload=d.bind(null,r.onload),l&&document.head.appendChild(r)}}}(),n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;n.tu=function(a){return void 0===e&&(e={createScriptURL:function(t){return t}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e.createScriptURL(a)}}(),n.p="",function(){var e={666:0};n.f.j=function(u,o){var i=n.o(e,u)?e[u]:void 0;if(0!==i)if(i)o.push(i[2]);else if(666!=u){var r=new Promise(function(c,d){i=e[u]=[c,d]});o.push(i[2]=r);var l=n.p+n.u(u),f=new Error;n.l(l,function(c){if(n.o(e,u)&&(0!==(i=e[u])&&(e[u]=void 0),i)){var d=c&&("load"===c.type?"missing":c.type),p=c&&c.target&&c.target.src;f.message="Loading chunk "+u+" failed.\n("+d+": "+p+")",f.name="ChunkLoadError",f.type=d,f.request=p,i[1](f)}},"chunk-"+u,u)}else e[u]=0},n.O.j=function(u){return 0===e[u]};var a=function(u,o){var f,s,i=o[0],r=o[1],l=o[2],c=0;for(f in r)n.o(r,f)&&(n.m[f]=r[f]);if(l)var d=l(n);for(u&&u(o);c<i.length;c++)n.o(e,s=i[c])&&e[s]&&e[s][0](),e[i[c]]=0;return n.O(d)},t=self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[];t.forEach(a.bind(null,0)),t.push=a.bind(null,t.push.bind(t))}()}();
!function(){"use strict";var e,v={},g={};function n(e){var a=g[e];if(void 0!==a)return a.exports;var t=g[e]={id:e,loaded:!1,exports:{}};return v[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=v,e=[],n.O=function(a,t,u,o){if(!t){var r=1/0;for(i=0;i<e.length;i++){t=e[i][0],u=e[i][1],o=e[i][2];for(var l=!0,f=0;f<t.length;f++)(!1&o||r>=o)&&Object.keys(n.O).every(function(b){return n.O[b](t[f])})?t.splice(f--,1):(l=!1,o<r&&(r=o));if(l){e.splice(i--,1);var s=u();void 0!==s&&(a=s)}}return a}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[t,u,o]},n.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(a,{a:a}),a},n.d=function(e,a){for(var t in a)n.o(a,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce(function(a,t){return n.f[t](e,a),a},[]))},n.u=function(e){return e+".77d4bfd104f37c42e028.js"},n.miniCssF=function(e){return"styles.f8555f2eecf8cf87f666.css"},n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},function(){var e={},a="gns3-web-ui:";n.l=function(t,u,o,i){if(e[t])e[t].push(u);else{var r,l;if(void 0!==o)for(var f=document.getElementsByTagName("script"),s=0;s<f.length;s++){var c=f[s];if(c.getAttribute("src")==t||c.getAttribute("data-webpack")==a+o){r=c;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,n.nc&&r.setAttribute("nonce",n.nc),r.setAttribute("data-webpack",a+o),r.src=n.tu(t)),e[t]=[u];var d=function(h,b){r.onerror=r.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],r.parentNode&&r.parentNode.removeChild(r),_&&_.forEach(function(m){return m(b)}),h)return h(b)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=d.bind(null,r.onerror),r.onload=d.bind(null,r.onload),l&&document.head.appendChild(r)}}}(),n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;n.tu=function(a){return void 0===e&&(e={createScriptURL:function(t){return t}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e.createScriptURL(a)}}(),n.p="",function(){var e={666:0};n.f.j=function(u,o){var i=n.o(e,u)?e[u]:void 0;if(0!==i)if(i)o.push(i[2]);else if(666!=u){var r=new Promise(function(c,d){i=e[u]=[c,d]});o.push(i[2]=r);var l=n.p+n.u(u),f=new Error;n.l(l,function(c){if(n.o(e,u)&&(0!==(i=e[u])&&(e[u]=void 0),i)){var d=c&&("load"===c.type?"missing":c.type),p=c&&c.target&&c.target.src;f.message="Loading chunk "+u+" failed.\n("+d+": "+p+")",f.name="ChunkLoadError",f.type=d,f.request=p,i[1](f)}},"chunk-"+u,u)}else e[u]=0},n.O.j=function(u){return 0===e[u]};var a=function(u,o){var f,s,i=o[0],r=o[1],l=o[2],c=0;for(f in r)n.o(r,f)&&(n.m[f]=r[f]);if(l)var d=l(n);for(u&&u(o);c<i.length;c++)n.o(e,s=i[c])&&e[s]&&e[s][0](),e[i[c]]=0;return n.O(d)},t=self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[];t.forEach(a.bind(null,0)),t.push=a.bind(null,t.push.bind(t))}()}();
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958275"
inkscape:cy="30"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#2d67b9"
id="path4" />
<path
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2"
id="path8" /><path
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3" /><path
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3-5" /><path
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3-5-2" /><path
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958275"
inkscape:cy="30"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#2d67b9"
id="path4" />
<path
d="M93.524 228.429c-.175.003-.349.004-.524.004-21.764 0-39.433-17.669-39.433-39.433 0-19.528 14.227-35.76 32.872-38.888.478-34.678 28.775-62.679 63.561-62.679s63.083 28.001 63.561 62.679c18.645 3.128 32.872 19.36 32.872 38.888 0 21.764-17.669 39.433-39.433 39.433-.273 0-.545-.003-.815-.009v.005H93.524ZM93 215h114c14.037 0 25.433-11.396 25.433-25.433 0-12.32-8.779-22.606-20.417-24.937l-.223-.044-.086-.015-.225-.042-.087-.015-.225-.039-.091-.014-.223-.035-.095-.014-.22-.032-.102-.014-.214-.028-.11-.014-.207-.025-.12-.013-.198-.021-.13-.012-.19-.018-.14-.012-.181-.015-.151-.01-.171-.012-.162-.009-.161-.01-.174-.007-.15-.007-.19-.006-.136-.004-.215-.004-.111-.002-.328-.003-.318.002-.106.002-.212.004-.126.004-.19.006-.134.006-.182.008-.138.007-.176.01-.141.009-.173.013-.142.011-.17.014-.143.012-.169.016-.143.015-.168.018-.143.016-.166.02-.143.018-.166.022-.142.02-.167.024-.14.021-.168.027-.137.022-.178.031-.126.021-.295.055-.144.029-.157.031-.153.032-.146.031-.156.034-.141.032-.159.037-.138.033-.159.039-.135.034-.16.042-.134.035-.16.043-.131.037-.161.045-.13.038-.161.048-.127.039-.162.05-.125.039-.163.053-.122.04-.163.055-.119.041-.166.058-.113.04-.169.062-.087.032-.188.07-.147.057-.075.03A49.912 49.912 0 0 0 200 151c0-27.596-22.404-50-50-50s-50 22.404-50 50c0 5.18.789 10.177 2.253 14.874l-.075-.03-.147-.057-.188-.07-.087-.032-.169-.062-.113-.04-.166-.058-.119-.041-.163-.055-.122-.04-.163-.053-.125-.039-.162-.05-.127-.039-.161-.048-.13-.038-.161-.045-.131-.037-.16-.043-.134-.035-.16-.042-.135-.034-.159-.039-.138-.033-.159-.037-.141-.032-.156-.034-.146-.031-.153-.032-.157-.031-.144-.029-.295-.055-.126-.021-.178-.031-.137-.022-.168-.027-.14-.021-.167-.024-.142-.02-.166-.022-.143-.018-.166-.02-.143-.016-.168-.018-.143-.015-.169-.016-.143-.012-.17-.014-.142-.011-.173-.013-.141-.009-.176-.01-.138-.007-.182-.008-.134-.006-.19-.006-.126-.004-.212-.004-.106-.002-.318-.002-.328.003-.111.002-.215.004-.136.004-.19.006-.15.007-.174.007-.161.01-.162.009-.171.012-.151.01-.181.015-.14.012-.19.018-.13.012-.198.021-.12.013-.207.025-.11.014-.214.028-.102.014-.22.032-.095.014-.223.035-.091.014-.225.039-.087.015-.225.042-.086.015-.223.044c-11.638 2.331-20.417 12.617-20.417 24.937C67.567 203.604 78.963 215 93 215Z"
style="fill:#2d67b9"
transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"
id="path6" />
<path
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-7" /><path
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#4d4d4d;fill-opacity:1"
id="path4" />
<path
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
id="path8" /><path
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3" /><path
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5" /><path
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-2" /><path
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#4d4d4d;fill-opacity:1"
id="path4" />
<path
d="M93.524 228.429c-.175.003-.349.004-.524.004-21.764 0-39.433-17.669-39.433-39.433 0-19.528 14.227-35.76 32.872-38.888.478-34.678 28.775-62.679 63.561-62.679s63.083 28.001 63.561 62.679c18.645 3.128 32.872 19.36 32.872 38.888 0 21.764-17.669 39.433-39.433 39.433-.273 0-.545-.003-.815-.009v.005H93.524ZM93 215h114c14.037 0 25.433-11.396 25.433-25.433 0-12.32-8.779-22.606-20.417-24.937l-.223-.044-.086-.015-.225-.042-.087-.015-.225-.039-.091-.014-.223-.035-.095-.014-.22-.032-.102-.014-.214-.028-.11-.014-.207-.025-.12-.013-.198-.021-.13-.012-.19-.018-.14-.012-.181-.015-.151-.01-.171-.012-.162-.009-.161-.01-.174-.007-.15-.007-.19-.006-.136-.004-.215-.004-.111-.002-.328-.003-.318.002-.106.002-.212.004-.126.004-.19.006-.134.006-.182.008-.138.007-.176.01-.141.009-.173.013-.142.011-.17.014-.143.012-.169.016-.143.015-.168.018-.143.016-.166.02-.143.018-.166.022-.142.02-.167.024-.14.021-.168.027-.137.022-.178.031-.126.021-.295.055-.144.029-.157.031-.153.032-.146.031-.156.034-.141.032-.159.037-.138.033-.159.039-.135.034-.16.042-.134.035-.16.043-.131.037-.161.045-.13.038-.161.048-.127.039-.162.05-.125.039-.163.053-.122.04-.163.055-.119.041-.166.058-.113.04-.169.062-.087.032-.188.07-.147.057-.075.03A49.912 49.912 0 0 0 200 151c0-27.596-22.404-50-50-50s-50 22.404-50 50c0 5.18.789 10.177 2.253 14.874l-.075-.03-.147-.057-.188-.07-.087-.032-.169-.062-.113-.04-.166-.058-.119-.041-.163-.055-.122-.04-.163-.053-.125-.039-.162-.05-.127-.039-.161-.048-.13-.038-.161-.045-.131-.037-.16-.043-.134-.035-.16-.042-.135-.034-.159-.039-.138-.033-.159-.037-.141-.032-.156-.034-.146-.031-.153-.032-.157-.031-.144-.029-.295-.055-.126-.021-.178-.031-.137-.022-.168-.027-.14-.021-.167-.024-.142-.02-.166-.022-.143-.018-.166-.02-.143-.016-.168-.018-.143-.015-.169-.016-.143-.012-.17-.014-.142-.011-.173-.013-.141-.009-.176-.01-.138-.007-.182-.008-.134-.006-.19-.006-.126-.004-.212-.004-.106-.002-.318-.002-.328.003-.111.002-.215.004-.136.004-.19.006-.15.007-.174.007-.161.01-.162.009-.171.012-.151.01-.181.015-.14.012-.19.018-.13.012-.198.021-.12.013-.207.025-.11.014-.214.028-.102.014-.22.032-.095.014-.223.035-.091.014-.225.039-.087.015-.225.042-.086.015-.223.044c-11.638 2.331-20.417 12.617-20.417 24.937C67.567 203.604 78.963 215 93 215Z"
style="fill:#4d4d4d;fill-opacity:1"
transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"
id="path6" />
<path
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-7" /><path
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#109e00;fill-opacity:1"
id="path4" />
<path
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
id="path8" /><path
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3" /><path
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5" /><path
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-2" /><path
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#109e00;fill-opacity:1"
id="path4" />
<path
d="M93.524 228.429c-.175.003-.349.004-.524.004-21.764 0-39.433-17.669-39.433-39.433 0-19.528 14.227-35.76 32.872-38.888.478-34.678 28.775-62.679 63.561-62.679s63.083 28.001 63.561 62.679c18.645 3.128 32.872 19.36 32.872 38.888 0 21.764-17.669 39.433-39.433 39.433-.273 0-.545-.003-.815-.009v.005H93.524ZM93 215h114c14.037 0 25.433-11.396 25.433-25.433 0-12.32-8.779-22.606-20.417-24.937l-.223-.044-.086-.015-.225-.042-.087-.015-.225-.039-.091-.014-.223-.035-.095-.014-.22-.032-.102-.014-.214-.028-.11-.014-.207-.025-.12-.013-.198-.021-.13-.012-.19-.018-.14-.012-.181-.015-.151-.01-.171-.012-.162-.009-.161-.01-.174-.007-.15-.007-.19-.006-.136-.004-.215-.004-.111-.002-.328-.003-.318.002-.106.002-.212.004-.126.004-.19.006-.134.006-.182.008-.138.007-.176.01-.141.009-.173.013-.142.011-.17.014-.143.012-.169.016-.143.015-.168.018-.143.016-.166.02-.143.018-.166.022-.142.02-.167.024-.14.021-.168.027-.137.022-.178.031-.126.021-.295.055-.144.029-.157.031-.153.032-.146.031-.156.034-.141.032-.159.037-.138.033-.159.039-.135.034-.16.042-.134.035-.16.043-.131.037-.161.045-.13.038-.161.048-.127.039-.162.05-.125.039-.163.053-.122.04-.163.055-.119.041-.166.058-.113.04-.169.062-.087.032-.188.07-.147.057-.075.03A49.912 49.912 0 0 0 200 151c0-27.596-22.404-50-50-50s-50 22.404-50 50c0 5.18.789 10.177 2.253 14.874l-.075-.03-.147-.057-.188-.07-.087-.032-.169-.062-.113-.04-.166-.058-.119-.041-.163-.055-.122-.04-.163-.053-.125-.039-.162-.05-.127-.039-.161-.048-.13-.038-.161-.045-.131-.037-.16-.043-.134-.035-.16-.042-.135-.034-.159-.039-.138-.033-.159-.037-.141-.032-.156-.034-.146-.031-.153-.032-.157-.031-.144-.029-.295-.055-.126-.021-.178-.031-.137-.022-.168-.027-.14-.021-.167-.024-.142-.02-.166-.022-.143-.018-.166-.02-.143-.016-.168-.018-.143-.015-.169-.016-.143-.012-.17-.014-.142-.011-.173-.013-.141-.009-.176-.01-.138-.007-.182-.008-.134-.006-.19-.006-.126-.004-.212-.004-.106-.002-.318-.002-.328.003-.111.002-.215.004-.136.004-.19.006-.15.007-.174.007-.161.01-.162.009-.171.012-.151.01-.181.015-.14.012-.19.018-.13.012-.198.021-.12.013-.207.025-.11.014-.214.028-.102.014-.22.032-.095.014-.223.035-.091.014-.225.039-.087.015-.225.042-.086.015-.223.044c-11.638 2.331-20.417 12.617-20.417 24.937C67.567 203.604 78.963 215 93 215Z"
style="fill:#109e00;fill-opacity:1"
transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"
id="path6" />
<path
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-7" /><path
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#e3292e;fill-opacity:1"
id="path4" />
<path
d="M 125.73252,227.39216 C 162.6821,181.25328 159.68479,109.80627 119.01184,67.8525 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085569 51.05025,132.713399 7.72895,186.632269 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
id="path8" /><path
d="M 55.837588,106.71509 H 105.55874 L 95.373313,97.858202 H 111.1846 l 15.82341,13.759468 -15.82341,13.75882 H 95.389703 l 10.317287,-8.97155 H 55.837588 Z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3" /><path
d="M 55.837592,146.71508 H 105.55874 L 95.373313,137.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5" /><path
d="m 185.83759,146.71508 h 49.72115 l -10.18542,-8.85689 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-2" /><path
d="M 55.837592,186.71508 H 105.55874 L 95.373313,177.85819 H 111.1846 l 15.82341,13.75947 -15.82341,13.75883 H 95.389703 l 10.317287,-8.97155 H 55.837592 Z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
version="1.1"
id="svg8"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs12" /><sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="150"
cy="150"
r="150"
style="fill:#fffefe"
id="circle2" />
<path
d="M150 0c82.787 0 150 67.213 150 150s-67.213 150-150 150S0 232.787 0 150 67.213 0 150 0Zm0 16c73.957 0 134 60.043 134 134s-60.043 134-134 134S16 223.957 16 150 76.043 16 150 16Z"
style="fill:#e3292e;fill-opacity:1"
id="path4" />
<path
d="M93.524 228.429c-.175.003-.349.004-.524.004-21.764 0-39.433-17.669-39.433-39.433 0-19.528 14.227-35.76 32.872-38.888.478-34.678 28.775-62.679 63.561-62.679s63.083 28.001 63.561 62.679c18.645 3.128 32.872 19.36 32.872 38.888 0 21.764-17.669 39.433-39.433 39.433-.273 0-.545-.003-.815-.009v.005H93.524ZM93 215h114c14.037 0 25.433-11.396 25.433-25.433 0-12.32-8.779-22.606-20.417-24.937l-.223-.044-.086-.015-.225-.042-.087-.015-.225-.039-.091-.014-.223-.035-.095-.014-.22-.032-.102-.014-.214-.028-.11-.014-.207-.025-.12-.013-.198-.021-.13-.012-.19-.018-.14-.012-.181-.015-.151-.01-.171-.012-.162-.009-.161-.01-.174-.007-.15-.007-.19-.006-.136-.004-.215-.004-.111-.002-.328-.003-.318.002-.106.002-.212.004-.126.004-.19.006-.134.006-.182.008-.138.007-.176.01-.141.009-.173.013-.142.011-.17.014-.143.012-.169.016-.143.015-.168.018-.143.016-.166.02-.143.018-.166.022-.142.02-.167.024-.14.021-.168.027-.137.022-.178.031-.126.021-.295.055-.144.029-.157.031-.153.032-.146.031-.156.034-.141.032-.159.037-.138.033-.159.039-.135.034-.16.042-.134.035-.16.043-.131.037-.161.045-.13.038-.161.048-.127.039-.162.05-.125.039-.163.053-.122.04-.163.055-.119.041-.166.058-.113.04-.169.062-.087.032-.188.07-.147.057-.075.03A49.912 49.912 0 0 0 200 151c0-27.596-22.404-50-50-50s-50 22.404-50 50c0 5.18.789 10.177 2.253 14.874l-.075-.03-.147-.057-.188-.07-.087-.032-.169-.062-.113-.04-.166-.058-.119-.041-.163-.055-.122-.04-.163-.053-.125-.039-.162-.05-.127-.039-.161-.048-.13-.038-.161-.045-.131-.037-.16-.043-.134-.035-.16-.042-.135-.034-.159-.039-.138-.033-.159-.037-.141-.032-.156-.034-.146-.031-.153-.032-.157-.031-.144-.029-.295-.055-.126-.021-.178-.031-.137-.022-.168-.027-.14-.021-.167-.024-.142-.02-.166-.022-.143-.018-.166-.02-.143-.016-.168-.018-.143-.015-.169-.016-.143-.012-.17-.014-.142-.011-.173-.013-.141-.009-.176-.01-.138-.007-.182-.008-.134-.006-.19-.006-.126-.004-.212-.004-.106-.002-.318-.002-.328.003-.111.002-.215.004-.136.004-.19.006-.15.007-.174.007-.161.01-.162.009-.171.012-.151.01-.181.015-.14.012-.19.018-.13.012-.198.021-.12.013-.207.025-.11.014-.214.028-.102.014-.22.032-.095.014-.223.035-.091.014-.225.039-.087.015-.225.042-.086.015-.223.044c-11.638 2.331-20.417 12.617-20.417 24.937C67.567 203.604 78.963 215 93 215Z"
style="fill:#e3292e;fill-opacity:1"
transform="matrix(1.0372 0 0 .99188 -5.58 -13.784)"
id="path6" />
<path
d="m 114.18486,133.39431 h 50.31577 L 154.19339,122.4189 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-7" /><path
d="m 186.32326,162.03715 h -50.31577 l 10.30725,-10.97542 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958275"
inkscape:cy="30"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" /><path
d="m 126.0992,224.81393 c 36.94958,-46.13888 33.95227,-117.5859 -6.72068,-159.539672 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085571 51.05025,132.713411 7.72895,186.632281 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2"
id="path8" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#2d67b9"
id="path4" />
<path
d="M 56.204265,104.13685 H 105.92542 L 95.739989,95.27996 h 15.811291 l 15.82341,13.75947 -15.82341,13.75883 H 95.756379 l 10.317291,-8.97155 H 56.204265 Z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3" /><path
d="m 56.204269,144.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3-5" /><path
d="m 186.20427,144.13685 h 49.72115 L 225.74,135.27996 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3-5-2" /><path
d="m 56.204269,184.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958275"
inkscape:cy="30"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#2d67b9"
id="path4" />
<g
id="g16">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="translate(-2.511 12.577)"
id="path6" />
<path
d="m152.591 65.891.415.004.414.007.413.009.413.012.412.014.411.017.411.019.41.023.409.024.409.027.407.03.408.033.406.034.406.038.405.04.404.042.404.045.403.047.402.05.401.053.401.054.399.058.399.059.398.063.398.064.396.067.396.07.395.072.394.074.393.077.392.079.392.081.39.084.39.086.389.089.388.091.387.093.386.096.385.098.384.1.384.102.382.105.381.107.381.11.379.112.379.114.378.116.376.118.376.121.374.123.374.125.372.128.372.129.37.132.37.134.368.137.367.138.366.141.366.142.364.145.363.148.361.149.361.151.36.154.358.155.358.158.356.16.355.162.354.164.353.166.351.168.351.171.349.172.348.174.347.177.345.178.345.181.343.182.342.185.341.186.339.189.338.19.337.193.336.194.334.196.333.199.332.2.33.202.33.205.327.206.327.208.325.21.324.211.322.214.321.216.32.217.319.22.316.221.316.223.314.225.313.226.311.229.31.23.309.233.307.234.305.235.304.238.303.239.301.242.3.242.298.245.297.247.295.248.294.25.292.251.291.254.289.255.287.256.286.259.285.26.283.262.281.263.28.265.278.267.277.269.275.27.273.271.272.274.27.275.268.276.267.278.265.28.264.281.261.283.261.285.258.286.257.287.255.29.253.29.252.292.25.294.248.295.246.297.245.298.243.3.241.301.239.303.238.304.236.306.234.307.232.308.23.31.229.311.227.313.224.314.224.316.221.317.219.318.218.32.215.321.214.322.212.324.21.325.208.327.206.328.204.329.202.33.2.332.199.333.196.335.195.335.192.337.191.338.188.34.187.34.184.342.183.343.18.345.179.346.176.346.174.348.173.35.17.35.168.352.166.352.164.354.162.355.16.357.158.357.156.359.153.359.152.361.149.362.147.363.145.364.143.365.14.366.139.367.136.369.134.369.132.371.13.371.127.373.125.373.123.375.121.375.119.377.116.377.114.379.112.379.109.381.107.381.105.383.103.383.1.384.098.385.095.387.094.387.09.387.089.389.086.39.084.391.082.391.079.392.076.393.075.395.072.394.069.396.067.397.065.397.062.398.06.399.057.4.055.4.052.402.05.402.047.402.045.404.043.404.04.405.037.406.035.407.032.407.03.408.027.408.025.41.022.41.019.41.017.412.015.412.012.412.009.414.006.414.004.414.002.415-.001.404-.004.4.223.037.223.038.222.04.222.041.221.042.221.043.22.044.22.045.22.047.219.048.218.049.219.05.217.051.218.052.216.054.217.055.216.055.215.057.215.059.214.059.214.06.214.062.213.062.212.064.212.065.212.066.211.067.21.068.21.069.21.07.208.072.209.072.208.074.207.074.207.076.206.077.206.078.205.079.204.08.205.081.203.082.203.083.202.084.202.085.402.174.2.088.2.09.199.09.198.091.198.093.197.093.392.19.196.097.194.097.388.198.193.101.192.101.192.103.191.103.38.21.189.106.376.216.187.109.187.11.37.224.185.113.184.114.183.115.364.232.181.118.36.238.179.121.178.121.178.123.177.123.176.124.176.125.174.126.174.127.174.128.172.128.172.13.171.13.171.131.338.266.168.133.168.135.332.272.165.137.328.278.163.139.162.141.161.142.16.142.16.143.159.144.158.145.157.145.157.147.155.147.155.148.154.149.306.3.151.151.151.153.15.152.149.154.148.154.147.155.147.156.146.157.288.316.143.159.143.16.141.16.14.161.14.162.139.163.138.163.137.165.136.165.135.165.268.334.132.167.132.169.13.169.13.17.129.171.128.171.127.172.126.173.125.173.124.174.123.175.123.176.121.176.24.354.118.178.118.179.116.179.116.18.115.181.226.364.112.182.22.368.109.184.108.185.106.186.106.187.105.187.103.187.103.189.102.189.1.189.1.19.099.191.097.191.097.192.095.192.095.193.093.194.092.194.092.195.09.195.089.196.088.196.087.197.086.198.085.198.084.198.082.2.082.199.081.201.079.2.078.202.078.201.076.203.075.203.074.203.073.204.071.204.071.205.069.205.069.206.067.207.066.207.065.207.126.416.122.418.059.21.058.21.057.211.11.422.053.212.052.213.051.213.05.213.096.428.046.215.045.215.044.215.084.432.04.217.039.217.074.436.035.218.034.219.033.219.062.44.029.22.027.22.027.222.025.221.024.222.023.222.021.222.02.223.019.223.018.224.016.224.015.224.014.225.013.225.011.225.01.225.008.226.008.227.006.226.004.227.003.227.002.228.001.227-.001.254-.002.254-.004.253-.006.253-.007.252-.009.252-.011.252-.012.251-.014.251-.016.25-.017.25-.018.249-.021.249-.022.249-.023.248-.025.248-.027.247-.028.247-.03.246-.031.246-.033.246-.034.244-.036.245-.038.244-.039.243-.04.243-.042.243-.044.242-.045.241-.046.241-.049.241-.049.24-.051.239-.053.239-.054.238-.055.238-.057.237-.059.237-.06.236-.061.236-.063.235-.065.234-.065.234-.068.233-.068.233-.07.232-.072.231-.073.231-.074.231-.076.229-.077.229-.078.229-.08.228-.082.227-.082.226-.085.226-.085.226-.087.224-.088.224-.09.223-.091.223-.092.222-.093.221-.095.221-.097.22-.097.219-.099.219-.101.218-.101.217-.103.216-.104.216-.106.215-.107.214-.108.214-.109.213-.111.212-.112.211-.113.211-.114.21-.116.209-.117.208-.118.208-.12.207-.12.206-.122.205-.124.204-.124.204-.126.203-.127.202-.128.201-.129.201-.13.199-.132.199-.133.198-.134.198-.135.196-.137.195-.137.195-.139.194-.14.193-.141.192-.142.191-.144.191-.144.189-.146.189-.146.188-.148.187-.149.186-.151.185-.151.184-.152.183-.154.183-.154.181-.156.181-.157.179-.157.179-.159.178-.16.177-.161.175-.162.175-.164.174-.164.173-.165.172-.166.171-.168.171-.168.169-.17.168-.17.167-.171.166-.173.165-.173.165-.175.163-.175.162-.177.161-.177.Line truncated
style="fill:#2d67b9"
transform="translate(-2.511 12.577)"
id="path8" />
<g
id="g14">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path10" />
<path
d="m151.761 65.891-.415.004-.414.007-.413.009-.413.012-.412.014-.411.017-.411.019-.41.023-.409.024-.408.027-.408.03-.408.033-.406.034-.406.038-.405.04-.404.042-.404.045-.403.047-.402.05-.401.053-.401.054-.399.058-.399.059-.398.063-.398.064-.396.067-.396.07-.395.072-.394.074-.393.077-.392.079-.392.081-.39.084-.39.086-.389.089-.388.091-.387.093-.386.096-.385.098-.384.1-.384.102-.382.105-.381.107-.381.11-.379.112-.379.114-.377.116-.377.118-.376.121-.374.123-.374.125-.372.128-.372.129-.37.132-.369.134-.369.137-.367.138-.366.141-.365.142-.365.145-.362.148-.362.149-.361.151-.36.154-.358.155-.358.158-.356.16-.355.162-.354.164-.353.166-.351.168-.351.171-.349.172-.348.174-.347.177-.345.178-.345.181-.343.182-.342.185-.341.186-.339.189-.338.19-.337.193-.336.194-.334.196-.333.199-.332.2-.33.202-.33.205-.327.206-.327.208-.325.21-.324.211-.322.214-.321.216-.32.217-.318.22-.317.221-.316.223-.314.225-.313.226-.311.229-.31.23-.309.233-.307.234-.305.235-.304.238-.303.239-.301.242-.3.242-.298.245-.297.247-.295.248-.294.25-.292.251-.291.254-.289.255-.287.256-.286.259-.285.26-.283.262-.281.263-.28.265-.278.267-.277.269-.275.27-.273.271-.272.274-.27.275-.268.276-.267.278-.265.28-.263.281-.262.283-.26.285-.259.286-.257.287-.255.29-.253.29-.252.292-.25.294-.248.295-.246.297-.245.298-.243.3-.241.301-.239.303-.238.304-.236.306-.234.307-.232.308-.23.31-.229.311-.226.313-.225.314-.223.316-.222.317-.219.318-.217.32-.216.321-.214.322-.212.324-.21.325-.208.327-.206.328-.204.329-.202.33-.2.332-.199.333-.196.335-.195.335-.192.337-.191.338-.188.34-.187.34-.184.342-.183.343-.18.345-.179.346-.176.346-.174.348-.173.35-.17.35-.168.352-.166.352-.164.354-.162.355-.16.357-.158.357-.156.359-.153.359-.151.361-.15.362-.147.363-.145.364-.143.365-.14.366-.139.367-.136.369-.134.369-.132.371-.13.371-.127.373-.125.373-.123.375-.121.375-.118.377-.117.377-.114.379-.111.379-.11.381-.107.381-.105.383-.102.383-.101.384-.098.385-.095.387-.093.387-.091.387-.089.389-.086.39-.084.391-.081.391-.08.392-.076.393-.075.395-.071.394-.07.396-.067.397-.065.397-.062.398-.06.399-.057.4-.055.4-.052.402-.05.402-.047.402-.045.404-.043.404-.039.405-.038.406-.035.407-.032.407-.03.408-.027.408-.025.41-.022.41-.019.41-.017.412-.015.412-.011.412-.01.414-.006.414-.004.414-.001.415v.161l-.219.039-.218.039-.218.04-.217.042-.217.043-.217.044-.216.045-.216.046-.215.048-.215.048-.214.05-.214.051-.213.052-.213.053-.213.055-.212.055-.211.057-.212.058-.21.059-.21.06-.21.061-.209.063-.209.063-.208.065-.208.066-.208.067-.206.068-.207.069-.205.07-.206.071-.204.072-.205.074-.203.074-.204.076-.202.077-.202.077-.202.079-.201.08-.201.081-.2.082-.199.083-.199.084-.198.085-.198.087-.197.087-.197.088-.196.09-.196.09-.195.091-.194.093-.194.093-.193.095-.193.095-.192.097-.191.097-.191.099-.19.1-.19.1-.189.102-.188.102-.188.104-.187.104-.187.106-.186.106-.185.107-.185.109-.184.109-.183.111-.183.111-.182.112-.181.113-.181.114-.18.115-.18.116-.178.117-.179.118-.177.119-.177.12-.176.121-.175.121-.175.123-.174.123-.173.125-.173.125-.172.126-.171.127-.171.128-.17.129-.169.13-.168.13-.168.132-.167.132-.166.133-.165.135-.165.135-.164.135-.163.137-.163.138-.162.138-.161.14-.16.14-.159.141-.159.142-.158.142-.157.144-.157.144-.155.145-.155.146-.154.147-.154.148-.152.148-.152.149-.151.15-.15.151-.149.152-.148.152-.148.154-.147.154-.146.154-.145.156-.145.156-.143.158-.143.157-.142.159-.141.16-.14.16-.139.161-.139.162-.138.162-.136.163-.136.164-.135.165-.134.165-.134.166-.132.167-.132.168-.13.168-.13.169-.129.17-.128.171-.127.171-.127.172-.125.172-.124.174-.124.174-.122.174-.122.176-.121.176-.12.177-.118.177-.118.178-.117.179-.116.179-.116.18-.114.181-.113.181-.112.182-.112.183-.11.183-.109.184-.109.185-.107.185-.107.186-.105.187-.105.187-.104.188-.102.188-.102.189-.1.19-.1.19-.098.191-.098.191-.097.192-.095.193-.095.193-.093.194-.093.194-.091.195-.091.195-.089.196-.088.197-.088.197-.086.198-.085.198-.085.199-.083.2-.082.2-.081.2-.08.201-.079.202-.077.202-.077.203-.076.203-.074.203-.074.205-.072.204-.072.206-.07.205-.069.207-.068.206-.067.208-.066.207-.064.209-.064.208-.062.21-.062.209-.06.211-.059.21-.058.211-.057.212-.055.212-.055.212-.053.213-.052.214-.051.214-.05.214-.049.215-.048.215-.046.216-.045.216-.044.216-.043.217-.042.217-.04.218-.04.218-.038.219-.037.219-.035.219-.035.22-.033.22-.032.221-.031.221-.03.221-.028.222-.027.222-.026.222-.025.223-.024.223-.022.224-.021.224-.02.224-.018.225-.017.225-.016.225-.015.226-.014.226-.012.226-.011.227-.009.227-.009.228-.007.227-.006.228-.004.229-.004.228-.002.229v.229l.001.251.002.25.004.249.005.249.007.249.009.248.01.248.011.248.013.247.015.247.016.246.017.246.019.246.021.245.022.245.023.244.025.244.027.243.028.243.029.243.031.242.032.241.034.242.035.24.037.241.038.239.04.24.041.238.042.239.044.238.045.237.047.237.048.236.049.236.051.235.052.235.054.234.055.234.056.233.058.233.059.232.122.462.064.231.064.23.066.229.067.229.069.228.07.228.071.227.073.226.074.226.075.225.076.225.078.224.079.223.081.223.082.222.083.222.084.221.085.22.087.22.088.219.18.436.092.217.093.Line truncated
style="fill:#2d67b9"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path12" />
</g>
</g>
<path
d="m 114.30977,144.2723 h 50.31577 L 154.3183,133.29689 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path8-7" /><path
d="M 186.44817,172.91513 H 136.1324 l 10.30725,-10.97541 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#2d67b9;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 78 KiB

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" /><path
d="m 126.0992,224.81393 c 36.94958,-46.13888 33.95227,-117.5859 -6.72068,-159.539672 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085571 51.05025,132.713411 7.72895,186.632281 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
id="path8" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#4d4d4d;fill-opacity:1"
id="path4" />
<path
d="M 56.204265,104.13685 H 105.92542 L 95.739989,95.27996 h 15.811291 l 15.82341,13.75947 -15.82341,13.75883 H 95.756379 l 10.317291,-8.97155 H 56.204265 Z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3" /><path
d="m 56.204269,144.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5" /><path
d="m 186.20427,144.13685 h 49.72115 L 225.74,135.27996 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-2" /><path
d="m 56.204269,184.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#4d4d4d;fill-opacity:1"
id="path4" />
<g
id="g16">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="translate(-2.511 12.577)"
id="path6" />
<path
d="m152.591 65.891.415.004.414.007.413.009.413.012.412.014.411.017.411.019.41.023.409.024.409.027.407.03.408.033.406.034.406.038.405.04.404.042.404.045.403.047.402.05.401.053.401.054.399.058.399.059.398.063.398.064.396.067.396.07.395.072.394.074.393.077.392.079.392.081.39.084.39.086.389.089.388.091.387.093.386.096.385.098.384.1.384.102.382.105.381.107.381.11.379.112.379.114.378.116.376.118.376.121.374.123.374.125.372.128.372.129.37.132.37.134.368.137.367.138.366.141.366.142.364.145.363.148.361.149.361.151.36.154.358.155.358.158.356.16.355.162.354.164.353.166.351.168.351.171.349.172.348.174.347.177.345.178.345.181.343.182.342.185.341.186.339.189.338.19.337.193.336.194.334.196.333.199.332.2.33.202.33.205.327.206.327.208.325.21.324.211.322.214.321.216.32.217.319.22.316.221.316.223.314.225.313.226.311.229.31.23.309.233.307.234.305.235.304.238.303.239.301.242.3.242.298.245.297.247.295.248.294.25.292.251.291.254.289.255.287.256.286.259.285.26.283.262.281.263.28.265.278.267.277.269.275.27.273.271.272.274.27.275.268.276.267.278.265.28.264.281.261.283.261.285.258.286.257.287.255.29.253.29.252.292.25.294.248.295.246.297.245.298.243.3.241.301.239.303.238.304.236.306.234.307.232.308.23.31.229.311.227.313.224.314.224.316.221.317.219.318.218.32.215.321.214.322.212.324.21.325.208.327.206.328.204.329.202.33.2.332.199.333.196.335.195.335.192.337.191.338.188.34.187.34.184.342.183.343.18.345.179.346.176.346.174.348.173.35.17.35.168.352.166.352.164.354.162.355.16.357.158.357.156.359.153.359.152.361.149.362.147.363.145.364.143.365.14.366.139.367.136.369.134.369.132.371.13.371.127.373.125.373.123.375.121.375.119.377.116.377.114.379.112.379.109.381.107.381.105.383.103.383.1.384.098.385.095.387.094.387.09.387.089.389.086.39.084.391.082.391.079.392.076.393.075.395.072.394.069.396.067.397.065.397.062.398.06.399.057.4.055.4.052.402.05.402.047.402.045.404.043.404.04.405.037.406.035.407.032.407.03.408.027.408.025.41.022.41.019.41.017.412.015.412.012.412.009.414.006.414.004.414.002.415-.001.404-.004.4.223.037.223.038.222.04.222.041.221.042.221.043.22.044.22.045.22.047.219.048.218.049.219.05.217.051.218.052.216.054.217.055.216.055.215.057.215.059.214.059.214.06.214.062.213.062.212.064.212.065.212.066.211.067.21.068.21.069.21.07.208.072.209.072.208.074.207.074.207.076.206.077.206.078.205.079.204.08.205.081.203.082.203.083.202.084.202.085.402.174.2.088.2.09.199.09.198.091.198.093.197.093.392.19.196.097.194.097.388.198.193.101.192.101.192.103.191.103.38.21.189.106.376.216.187.109.187.11.37.224.185.113.184.114.183.115.364.232.181.118.36.238.179.121.178.121.178.123.177.123.176.124.176.125.174.126.174.127.174.128.172.128.172.13.171.13.171.131.338.266.168.133.168.135.332.272.165.137.328.278.163.139.162.141.161.142.16.142.16.143.159.144.158.145.157.145.157.147.155.147.155.148.154.149.306.3.151.151.151.153.15.152.149.154.148.154.147.155.147.156.146.157.288.316.143.159.143.16.141.16.14.161.14.162.139.163.138.163.137.165.136.165.135.165.268.334.132.167.132.169.13.169.13.17.129.171.128.171.127.172.126.173.125.173.124.174.123.175.123.176.121.176.24.354.118.178.118.179.116.179.116.18.115.181.226.364.112.182.22.368.109.184.108.185.106.186.106.187.105.187.103.187.103.189.102.189.1.189.1.19.099.191.097.191.097.192.095.192.095.193.093.194.092.194.092.195.09.195.089.196.088.196.087.197.086.198.085.198.084.198.082.2.082.199.081.201.079.2.078.202.078.201.076.203.075.203.074.203.073.204.071.204.071.205.069.205.069.206.067.207.066.207.065.207.126.416.122.418.059.21.058.21.057.211.11.422.053.212.052.213.051.213.05.213.096.428.046.215.045.215.044.215.084.432.04.217.039.217.074.436.035.218.034.219.033.219.062.44.029.22.027.22.027.222.025.221.024.222.023.222.021.222.02.223.019.223.018.224.016.224.015.224.014.225.013.225.011.225.01.225.008.226.008.227.006.226.004.227.003.227.002.228.001.227-.001.254-.002.254-.004.253-.006.253-.007.252-.009.252-.011.252-.012.251-.014.251-.016.25-.017.25-.018.249-.021.249-.022.249-.023.248-.025.248-.027.247-.028.247-.03.246-.031.246-.033.246-.034.244-.036.245-.038.244-.039.243-.04.243-.042.243-.044.242-.045.241-.046.241-.049.241-.049.24-.051.239-.053.239-.054.238-.055.238-.057.237-.059.237-.06.236-.061.236-.063.235-.065.234-.065.234-.068.233-.068.233-.07.232-.072.231-.073.231-.074.231-.076.229-.077.229-.078.229-.08.228-.082.227-.082.226-.085.226-.085.226-.087.224-.088.224-.09.223-.091.223-.092.222-.093.221-.095.221-.097.22-.097.219-.099.219-.101.218-.101.217-.103.216-.104.216-.106.215-.107.214-.108.214-.109.213-.111.212-.112.211-.113.211-.114.21-.116.209-.117.208-.118.208-.12.207-.12.206-.122.205-.124.204-.124.204-.126.203-.127.202-.128.201-.129.201-.13.199-.132.199-.133.198-.134.198-.135.196-.137.195-.137.195-.139.194-.14.193-.141.192-.142.191-.144.191-.144.189-.146.189-.146.188-.148.187-.149.186-.151.185-.151.184-.152.183-.154.183-.154.181-.156.181-.157.179-.157.179-.159.178-.16.177-.161.175-.162.175-.164.174-.164.173-.165.172-.166.171-.168.171-.168.169-.17.168-.17.167-.171.166-.173.165-.173.165-.175.163-.175.162-.177.161-.177.Line truncated
style="fill:#4d4d4d;fill-opacity:1"
transform="translate(-2.511 12.577)"
id="path8" />
<g
id="g14">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path10" />
<path
d="m151.761 65.891-.415.004-.414.007-.413.009-.413.012-.412.014-.411.017-.411.019-.41.023-.409.024-.408.027-.408.03-.408.033-.406.034-.406.038-.405.04-.404.042-.404.045-.403.047-.402.05-.401.053-.401.054-.399.058-.399.059-.398.063-.398.064-.396.067-.396.07-.395.072-.394.074-.393.077-.392.079-.392.081-.39.084-.39.086-.389.089-.388.091-.387.093-.386.096-.385.098-.384.1-.384.102-.382.105-.381.107-.381.11-.379.112-.379.114-.377.116-.377.118-.376.121-.374.123-.374.125-.372.128-.372.129-.37.132-.369.134-.369.137-.367.138-.366.141-.365.142-.365.145-.362.148-.362.149-.361.151-.36.154-.358.155-.358.158-.356.16-.355.162-.354.164-.353.166-.351.168-.351.171-.349.172-.348.174-.347.177-.345.178-.345.181-.343.182-.342.185-.341.186-.339.189-.338.19-.337.193-.336.194-.334.196-.333.199-.332.2-.33.202-.33.205-.327.206-.327.208-.325.21-.324.211-.322.214-.321.216-.32.217-.318.22-.317.221-.316.223-.314.225-.313.226-.311.229-.31.23-.309.233-.307.234-.305.235-.304.238-.303.239-.301.242-.3.242-.298.245-.297.247-.295.248-.294.25-.292.251-.291.254-.289.255-.287.256-.286.259-.285.26-.283.262-.281.263-.28.265-.278.267-.277.269-.275.27-.273.271-.272.274-.27.275-.268.276-.267.278-.265.28-.263.281-.262.283-.26.285-.259.286-.257.287-.255.29-.253.29-.252.292-.25.294-.248.295-.246.297-.245.298-.243.3-.241.301-.239.303-.238.304-.236.306-.234.307-.232.308-.23.31-.229.311-.226.313-.225.314-.223.316-.222.317-.219.318-.217.32-.216.321-.214.322-.212.324-.21.325-.208.327-.206.328-.204.329-.202.33-.2.332-.199.333-.196.335-.195.335-.192.337-.191.338-.188.34-.187.34-.184.342-.183.343-.18.345-.179.346-.176.346-.174.348-.173.35-.17.35-.168.352-.166.352-.164.354-.162.355-.16.357-.158.357-.156.359-.153.359-.151.361-.15.362-.147.363-.145.364-.143.365-.14.366-.139.367-.136.369-.134.369-.132.371-.13.371-.127.373-.125.373-.123.375-.121.375-.118.377-.117.377-.114.379-.111.379-.11.381-.107.381-.105.383-.102.383-.101.384-.098.385-.095.387-.093.387-.091.387-.089.389-.086.39-.084.391-.081.391-.08.392-.076.393-.075.395-.071.394-.07.396-.067.397-.065.397-.062.398-.06.399-.057.4-.055.4-.052.402-.05.402-.047.402-.045.404-.043.404-.039.405-.038.406-.035.407-.032.407-.03.408-.027.408-.025.41-.022.41-.019.41-.017.412-.015.412-.011.412-.01.414-.006.414-.004.414-.001.415v.161l-.219.039-.218.039-.218.04-.217.042-.217.043-.217.044-.216.045-.216.046-.215.048-.215.048-.214.05-.214.051-.213.052-.213.053-.213.055-.212.055-.211.057-.212.058-.21.059-.21.06-.21.061-.209.063-.209.063-.208.065-.208.066-.208.067-.206.068-.207.069-.205.07-.206.071-.204.072-.205.074-.203.074-.204.076-.202.077-.202.077-.202.079-.201.08-.201.081-.2.082-.199.083-.199.084-.198.085-.198.087-.197.087-.197.088-.196.09-.196.09-.195.091-.194.093-.194.093-.193.095-.193.095-.192.097-.191.097-.191.099-.19.1-.19.1-.189.102-.188.102-.188.104-.187.104-.187.106-.186.106-.185.107-.185.109-.184.109-.183.111-.183.111-.182.112-.181.113-.181.114-.18.115-.18.116-.178.117-.179.118-.177.119-.177.12-.176.121-.175.121-.175.123-.174.123-.173.125-.173.125-.172.126-.171.127-.171.128-.17.129-.169.13-.168.13-.168.132-.167.132-.166.133-.165.135-.165.135-.164.135-.163.137-.163.138-.162.138-.161.14-.16.14-.159.141-.159.142-.158.142-.157.144-.157.144-.155.145-.155.146-.154.147-.154.148-.152.148-.152.149-.151.15-.15.151-.149.152-.148.152-.148.154-.147.154-.146.154-.145.156-.145.156-.143.158-.143.157-.142.159-.141.16-.14.16-.139.161-.139.162-.138.162-.136.163-.136.164-.135.165-.134.165-.134.166-.132.167-.132.168-.13.168-.13.169-.129.17-.128.171-.127.171-.127.172-.125.172-.124.174-.124.174-.122.174-.122.176-.121.176-.12.177-.118.177-.118.178-.117.179-.116.179-.116.18-.114.181-.113.181-.112.182-.112.183-.11.183-.109.184-.109.185-.107.185-.107.186-.105.187-.105.187-.104.188-.102.188-.102.189-.1.19-.1.19-.098.191-.098.191-.097.192-.095.193-.095.193-.093.194-.093.194-.091.195-.091.195-.089.196-.088.197-.088.197-.086.198-.085.198-.085.199-.083.2-.082.2-.081.2-.08.201-.079.202-.077.202-.077.203-.076.203-.074.203-.074.205-.072.204-.072.206-.07.205-.069.207-.068.206-.067.208-.066.207-.064.209-.064.208-.062.21-.062.209-.06.211-.059.21-.058.211-.057.212-.055.212-.055.212-.053.213-.052.214-.051.214-.05.214-.049.215-.048.215-.046.216-.045.216-.044.216-.043.217-.042.217-.04.218-.04.218-.038.219-.037.219-.035.219-.035.22-.033.22-.032.221-.031.221-.03.221-.028.222-.027.222-.026.222-.025.223-.024.223-.022.224-.021.224-.02.224-.018.225-.017.225-.016.225-.015.226-.014.226-.012.226-.011.227-.009.227-.009.228-.007.227-.006.228-.004.229-.004.228-.002.229v.229l.001.251.002.25.004.249.005.249.007.249.009.248.01.248.011.248.013.247.015.247.016.246.017.246.019.246.021.245.022.245.023.244.025.244.027.243.028.243.029.243.031.242.032.241.034.242.035.24.037.241.038.239.04.24.041.238.042.239.044.238.045.237.047.237.048.236.049.236.051.235.052.235.054.234.055.234.056.233.058.233.059.232.122.462.064.231.064.23.066.229.067.229.069.228.07.228.071.227.073.226.074.226.075.225.076.225.078.224.079.223.081.223.082.222.083.222.084.221.085.22.087.22.088.219.18.436.092.217.093.Line truncated
style="fill:#4d4d4d;fill-opacity:1"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path12" />
</g>
</g>
<path
d="m 114.30977,144.2723 h 50.31577 L 154.3183,133.29689 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-7" /><path
d="M 186.44817,172.91513 H 136.1324 l 10.30725,-10.97541 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#4d4d4d;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 78 KiB

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" /><path
d="m 126.0992,224.81393 c 36.94958,-46.13888 33.95227,-117.5859 -6.72068,-159.539672 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085571 51.05025,132.713411 7.72895,186.632281 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
id="path8" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#109e00;fill-opacity:1"
id="path4" />
<path
d="M 56.204265,104.13685 H 105.92542 L 95.739989,95.27996 h 15.811291 l 15.82341,13.75947 -15.82341,13.75883 H 95.756379 l 10.317291,-8.97155 H 56.204265 Z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3" /><path
d="m 56.204269,144.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5" /><path
d="m 186.20427,144.13685 h 49.72115 L 225.74,135.27996 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-2" /><path
d="m 56.204269,184.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#109e00;fill-opacity:1"
id="path4" />
<g
id="g16">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="translate(-2.511 12.577)"
id="path6" />
<path
d="m152.591 65.891.415.004.414.007.413.009.413.012.412.014.411.017.411.019.41.023.409.024.409.027.407.03.408.033.406.034.406.038.405.04.404.042.404.045.403.047.402.05.401.053.401.054.399.058.399.059.398.063.398.064.396.067.396.07.395.072.394.074.393.077.392.079.392.081.39.084.39.086.389.089.388.091.387.093.386.096.385.098.384.1.384.102.382.105.381.107.381.11.379.112.379.114.378.116.376.118.376.121.374.123.374.125.372.128.372.129.37.132.37.134.368.137.367.138.366.141.366.142.364.145.363.148.361.149.361.151.36.154.358.155.358.158.356.16.355.162.354.164.353.166.351.168.351.171.349.172.348.174.347.177.345.178.345.181.343.182.342.185.341.186.339.189.338.19.337.193.336.194.334.196.333.199.332.2.33.202.33.205.327.206.327.208.325.21.324.211.322.214.321.216.32.217.319.22.316.221.316.223.314.225.313.226.311.229.31.23.309.233.307.234.305.235.304.238.303.239.301.242.3.242.298.245.297.247.295.248.294.25.292.251.291.254.289.255.287.256.286.259.285.26.283.262.281.263.28.265.278.267.277.269.275.27.273.271.272.274.27.275.268.276.267.278.265.28.264.281.261.283.261.285.258.286.257.287.255.29.253.29.252.292.25.294.248.295.246.297.245.298.243.3.241.301.239.303.238.304.236.306.234.307.232.308.23.31.229.311.227.313.224.314.224.316.221.317.219.318.218.32.215.321.214.322.212.324.21.325.208.327.206.328.204.329.202.33.2.332.199.333.196.335.195.335.192.337.191.338.188.34.187.34.184.342.183.343.18.345.179.346.176.346.174.348.173.35.17.35.168.352.166.352.164.354.162.355.16.357.158.357.156.359.153.359.152.361.149.362.147.363.145.364.143.365.14.366.139.367.136.369.134.369.132.371.13.371.127.373.125.373.123.375.121.375.119.377.116.377.114.379.112.379.109.381.107.381.105.383.103.383.1.384.098.385.095.387.094.387.09.387.089.389.086.39.084.391.082.391.079.392.076.393.075.395.072.394.069.396.067.397.065.397.062.398.06.399.057.4.055.4.052.402.05.402.047.402.045.404.043.404.04.405.037.406.035.407.032.407.03.408.027.408.025.41.022.41.019.41.017.412.015.412.012.412.009.414.006.414.004.414.002.415-.001.404-.004.4.223.037.223.038.222.04.222.041.221.042.221.043.22.044.22.045.22.047.219.048.218.049.219.05.217.051.218.052.216.054.217.055.216.055.215.057.215.059.214.059.214.06.214.062.213.062.212.064.212.065.212.066.211.067.21.068.21.069.21.07.208.072.209.072.208.074.207.074.207.076.206.077.206.078.205.079.204.08.205.081.203.082.203.083.202.084.202.085.402.174.2.088.2.09.199.09.198.091.198.093.197.093.392.19.196.097.194.097.388.198.193.101.192.101.192.103.191.103.38.21.189.106.376.216.187.109.187.11.37.224.185.113.184.114.183.115.364.232.181.118.36.238.179.121.178.121.178.123.177.123.176.124.176.125.174.126.174.127.174.128.172.128.172.13.171.13.171.131.338.266.168.133.168.135.332.272.165.137.328.278.163.139.162.141.161.142.16.142.16.143.159.144.158.145.157.145.157.147.155.147.155.148.154.149.306.3.151.151.151.153.15.152.149.154.148.154.147.155.147.156.146.157.288.316.143.159.143.16.141.16.14.161.14.162.139.163.138.163.137.165.136.165.135.165.268.334.132.167.132.169.13.169.13.17.129.171.128.171.127.172.126.173.125.173.124.174.123.175.123.176.121.176.24.354.118.178.118.179.116.179.116.18.115.181.226.364.112.182.22.368.109.184.108.185.106.186.106.187.105.187.103.187.103.189.102.189.1.189.1.19.099.191.097.191.097.192.095.192.095.193.093.194.092.194.092.195.09.195.089.196.088.196.087.197.086.198.085.198.084.198.082.2.082.199.081.201.079.2.078.202.078.201.076.203.075.203.074.203.073.204.071.204.071.205.069.205.069.206.067.207.066.207.065.207.126.416.122.418.059.21.058.21.057.211.11.422.053.212.052.213.051.213.05.213.096.428.046.215.045.215.044.215.084.432.04.217.039.217.074.436.035.218.034.219.033.219.062.44.029.22.027.22.027.222.025.221.024.222.023.222.021.222.02.223.019.223.018.224.016.224.015.224.014.225.013.225.011.225.01.225.008.226.008.227.006.226.004.227.003.227.002.228.001.227-.001.254-.002.254-.004.253-.006.253-.007.252-.009.252-.011.252-.012.251-.014.251-.016.25-.017.25-.018.249-.021.249-.022.249-.023.248-.025.248-.027.247-.028.247-.03.246-.031.246-.033.246-.034.244-.036.245-.038.244-.039.243-.04.243-.042.243-.044.242-.045.241-.046.241-.049.241-.049.24-.051.239-.053.239-.054.238-.055.238-.057.237-.059.237-.06.236-.061.236-.063.235-.065.234-.065.234-.068.233-.068.233-.07.232-.072.231-.073.231-.074.231-.076.229-.077.229-.078.229-.08.228-.082.227-.082.226-.085.226-.085.226-.087.224-.088.224-.09.223-.091.223-.092.222-.093.221-.095.221-.097.22-.097.219-.099.219-.101.218-.101.217-.103.216-.104.216-.106.215-.107.214-.108.214-.109.213-.111.212-.112.211-.113.211-.114.21-.116.209-.117.208-.118.208-.12.207-.12.206-.122.205-.124.204-.124.204-.126.203-.127.202-.128.201-.129.201-.13.199-.132.199-.133.198-.134.198-.135.196-.137.195-.137.195-.139.194-.14.193-.141.192-.142.191-.144.191-.144.189-.146.189-.146.188-.148.187-.149.186-.151.185-.151.184-.152.183-.154.183-.154.181-.156.181-.157.179-.157.179-.159.178-.16.177-.161.175-.162.175-.164.174-.164.173-.165.172-.166.171-.168.171-.168.169-.17.168-.17.167-.171.166-.173.165-.173.165-.175.163-.175.162-.177.161-.177.Line truncated
style="fill:#109e00;fill-opacity:1"
transform="translate(-2.511 12.577)"
id="path8" />
<g
id="g14">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path10" />
<path
d="m151.761 65.891-.415.004-.414.007-.413.009-.413.012-.412.014-.411.017-.411.019-.41.023-.409.024-.408.027-.408.03-.408.033-.406.034-.406.038-.405.04-.404.042-.404.045-.403.047-.402.05-.401.053-.401.054-.399.058-.399.059-.398.063-.398.064-.396.067-.396.07-.395.072-.394.074-.393.077-.392.079-.392.081-.39.084-.39.086-.389.089-.388.091-.387.093-.386.096-.385.098-.384.1-.384.102-.382.105-.381.107-.381.11-.379.112-.379.114-.377.116-.377.118-.376.121-.374.123-.374.125-.372.128-.372.129-.37.132-.369.134-.369.137-.367.138-.366.141-.365.142-.365.145-.362.148-.362.149-.361.151-.36.154-.358.155-.358.158-.356.16-.355.162-.354.164-.353.166-.351.168-.351.171-.349.172-.348.174-.347.177-.345.178-.345.181-.343.182-.342.185-.341.186-.339.189-.338.19-.337.193-.336.194-.334.196-.333.199-.332.2-.33.202-.33.205-.327.206-.327.208-.325.21-.324.211-.322.214-.321.216-.32.217-.318.22-.317.221-.316.223-.314.225-.313.226-.311.229-.31.23-.309.233-.307.234-.305.235-.304.238-.303.239-.301.242-.3.242-.298.245-.297.247-.295.248-.294.25-.292.251-.291.254-.289.255-.287.256-.286.259-.285.26-.283.262-.281.263-.28.265-.278.267-.277.269-.275.27-.273.271-.272.274-.27.275-.268.276-.267.278-.265.28-.263.281-.262.283-.26.285-.259.286-.257.287-.255.29-.253.29-.252.292-.25.294-.248.295-.246.297-.245.298-.243.3-.241.301-.239.303-.238.304-.236.306-.234.307-.232.308-.23.31-.229.311-.226.313-.225.314-.223.316-.222.317-.219.318-.217.32-.216.321-.214.322-.212.324-.21.325-.208.327-.206.328-.204.329-.202.33-.2.332-.199.333-.196.335-.195.335-.192.337-.191.338-.188.34-.187.34-.184.342-.183.343-.18.345-.179.346-.176.346-.174.348-.173.35-.17.35-.168.352-.166.352-.164.354-.162.355-.16.357-.158.357-.156.359-.153.359-.151.361-.15.362-.147.363-.145.364-.143.365-.14.366-.139.367-.136.369-.134.369-.132.371-.13.371-.127.373-.125.373-.123.375-.121.375-.118.377-.117.377-.114.379-.111.379-.11.381-.107.381-.105.383-.102.383-.101.384-.098.385-.095.387-.093.387-.091.387-.089.389-.086.39-.084.391-.081.391-.08.392-.076.393-.075.395-.071.394-.07.396-.067.397-.065.397-.062.398-.06.399-.057.4-.055.4-.052.402-.05.402-.047.402-.045.404-.043.404-.039.405-.038.406-.035.407-.032.407-.03.408-.027.408-.025.41-.022.41-.019.41-.017.412-.015.412-.011.412-.01.414-.006.414-.004.414-.001.415v.161l-.219.039-.218.039-.218.04-.217.042-.217.043-.217.044-.216.045-.216.046-.215.048-.215.048-.214.05-.214.051-.213.052-.213.053-.213.055-.212.055-.211.057-.212.058-.21.059-.21.06-.21.061-.209.063-.209.063-.208.065-.208.066-.208.067-.206.068-.207.069-.205.07-.206.071-.204.072-.205.074-.203.074-.204.076-.202.077-.202.077-.202.079-.201.08-.201.081-.2.082-.199.083-.199.084-.198.085-.198.087-.197.087-.197.088-.196.09-.196.09-.195.091-.194.093-.194.093-.193.095-.193.095-.192.097-.191.097-.191.099-.19.1-.19.1-.189.102-.188.102-.188.104-.187.104-.187.106-.186.106-.185.107-.185.109-.184.109-.183.111-.183.111-.182.112-.181.113-.181.114-.18.115-.18.116-.178.117-.179.118-.177.119-.177.12-.176.121-.175.121-.175.123-.174.123-.173.125-.173.125-.172.126-.171.127-.171.128-.17.129-.169.13-.168.13-.168.132-.167.132-.166.133-.165.135-.165.135-.164.135-.163.137-.163.138-.162.138-.161.14-.16.14-.159.141-.159.142-.158.142-.157.144-.157.144-.155.145-.155.146-.154.147-.154.148-.152.148-.152.149-.151.15-.15.151-.149.152-.148.152-.148.154-.147.154-.146.154-.145.156-.145.156-.143.158-.143.157-.142.159-.141.16-.14.16-.139.161-.139.162-.138.162-.136.163-.136.164-.135.165-.134.165-.134.166-.132.167-.132.168-.13.168-.13.169-.129.17-.128.171-.127.171-.127.172-.125.172-.124.174-.124.174-.122.174-.122.176-.121.176-.12.177-.118.177-.118.178-.117.179-.116.179-.116.18-.114.181-.113.181-.112.182-.112.183-.11.183-.109.184-.109.185-.107.185-.107.186-.105.187-.105.187-.104.188-.102.188-.102.189-.1.19-.1.19-.098.191-.098.191-.097.192-.095.193-.095.193-.093.194-.093.194-.091.195-.091.195-.089.196-.088.197-.088.197-.086.198-.085.198-.085.199-.083.2-.082.2-.081.2-.08.201-.079.202-.077.202-.077.203-.076.203-.074.203-.074.205-.072.204-.072.206-.07.205-.069.207-.068.206-.067.208-.066.207-.064.209-.064.208-.062.21-.062.209-.06.211-.059.21-.058.211-.057.212-.055.212-.055.212-.053.213-.052.214-.051.214-.05.214-.049.215-.048.215-.046.216-.045.216-.044.216-.043.217-.042.217-.04.218-.04.218-.038.219-.037.219-.035.219-.035.22-.033.22-.032.221-.031.221-.03.221-.028.222-.027.222-.026.222-.025.223-.024.223-.022.224-.021.224-.02.224-.018.225-.017.225-.016.225-.015.226-.014.226-.012.226-.011.227-.009.227-.009.228-.007.227-.006.228-.004.229-.004.228-.002.229v.229l.001.251.002.25.004.249.005.249.007.249.009.248.01.248.011.248.013.247.015.247.016.246.017.246.019.246.021.245.022.245.023.244.025.244.027.243.028.243.029.243.031.242.032.241.034.242.035.24.037.241.038.239.04.24.041.238.042.239.044.238.045.237.047.237.048.236.049.236.051.235.052.235.054.234.055.234.056.233.058.233.059.232.122.462.064.231.064.23.066.229.067.229.069.228.07.228.071.227.073.226.074.226.075.225.076.225.078.224.079.223.081.223.082.222.083.222.084.221.085.22.087.22.088.219.18.436.092.217.093.Line truncated
style="fill:#109e00;fill-opacity:1"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path12" />
</g>
</g>
<path
d="m 114.30977,144.2723 h 50.31577 L 154.3183,133.29689 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-7" /><path
d="M 186.44817,172.91513 H 136.1324 l 10.30725,-10.97541 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#109e00;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 78 KiB

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" /><path
d="m 126.0992,224.81393 c 36.94958,-46.13888 33.95227,-117.5859 -6.72068,-159.539672 l -0.0404,-0.0415 a 8.4262645,9.5474485 0 0 1 -0.51796,-13.437497 c 3.1284,-3.89368 8.4597,-4.177124 11.89613,-0.632472 47.587,49.085571 51.05025,132.713411 7.72895,186.632281 -3.1284,3.89367 -8.45969,4.17712 -11.89613,0.63246 a 8.4262645,9.5474485 0 0 1 -0.5582,-13.47898 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:1.37905;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1"
id="path8" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#e3292e;fill-opacity:1"
id="path4" />
<path
d="M 56.204265,104.13685 H 105.92542 L 95.739989,95.27996 h 15.811291 l 15.82341,13.75947 -15.82341,13.75883 H 95.756379 l 10.317291,-8.97155 H 56.204265 Z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3" /><path
d="m 56.204269,144.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5" /><path
d="m 186.20427,144.13685 h 49.72115 L 225.74,135.27996 h 15.81128 l 15.82341,13.75947 -15.82341,13.75883 h -15.79489 l 10.31728,-8.97155 h -49.8694 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-2" /><path
d="m 56.204269,184.13685 h 49.721151 l -10.185427,-8.85689 h 15.811287 l 15.82341,13.75947 -15.82341,13.75883 H 95.756383 l 10.317287,-8.97155 H 56.204269 Z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.664657;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-3-5-6" /></svg>

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="60"
height="60"
viewBox="0 0 300 300"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421"
version="1.1"
id="svg18"
sodipodi:docname="nat2.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs22" /><sodipodi:namedview
id="namedview20"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.983333"
inkscape:cx="29.958276"
inkscape:cy="30.000001"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="g16" />
<path
d="M300 30.271C300 13.564 286.436 0 269.729 0H30.271C13.564 0 0 13.564 0 30.271v239.458C0 286.436 13.564 300 30.271 300h239.458C286.436 300 300 286.436 300 269.729V30.271Z"
style="fill:#fffefe"
id="path2" />
<path
d="m269.925.001.195.001.39.008.195.005.194.007.194.008.193.009.386.022.193.013.192.014.192.016.191.016.192.018.191.018.19.02.38.044.19.023.189.025.188.026.189.027.188.028.187.029.188.031.186.031.187.033.186.034.186.035.185.036.185.037.368.078.184.041.183.042.183.043.182.043.364.092.181.047.18.048.181.05.179.05.18.052.179.052.178.054.178.055.177.056.177.057.177.058.176.059.175.06.175.061.175.062.174.063.174.064.173.066.172.066.172.067.172.068.171.07.17.07.17.071.17.073.169.073.168.074.168.076.167.076.167.077.332.158.165.08.165.081.164.083.163.083.163.084.162.085.162.086.161.087.161.088.16.088.159.09.159.091.316.184.157.094.156.094.156.095.155.096.308.196.306.198.152.101.302.204.15.104.149.104.149.105.148.106.294.214.146.109.145.109.145.111.144.111.143.112.143.113.142.113.282.23.139.116.14.117.276.236.137.12.136.12.135.121.135.122.134.122.134.124.132.124.132.125.131.125.26.254.129.128.128.129.254.26.125.131.125.132.124.132.124.134.122.134.122.135.121.135.12.136.12.137.236.276.117.14.116.139.23.282.113.142.113.143.112.143.111.144.111.145.109.145.109.146.214.294.106.148.105.149.104.149.104.15.204.302.101.152.198.306.196.308.096.155.095.156.094.156.094.157.184.316.091.159.09.159.088.16.088.161.087.161.086.162.085.162.084.163.083.163.083.164.081.165.08.165.158.332.077.167.076.167.076.168.074.168.073.169.073.17.071.17.07.17.07.171.068.172.067.172.066.172.066.173.064.174.063.174.062.175.061.175.06.175.059.176.058.177.057.177.056.177.055.178.054.178.052.179.052.18.05.179.05.181.048.18.047.181.092.364.043.182.043.183.042.183.041.184.078.368.037.185.036.185.035.186.034.186.033.187.031.186.031.188.029.187.028.188.027.189.026.188.025.189.023.19.044.38.02.19.018.191.018.192.016.191.016.192.014.192.013.193.022.386.009.193.008.194.007.194.005.195.008.39.002.391v239.458l-.001.196-.001.195-.004.195-.004.195-.005.195-.007.194-.008.194-.009.193-.011.193-.011.193-.013.193-.014.192-.016.192-.016.191-.018.192-.018.191-.02.19-.022.19-.022.19-.023.19-.025.189-.026.188-.027.189-.028.188-.029.187-.031.188-.031.186-.033.187-.034.186-.035.186-.036.185-.037.185-.039.184-.039.184-.041.184-.042.183-.043.183-.043.182-.046.182-.046.182-.047.181-.048.18-.05.181-.05.179-.052.18-.052.179-.054.178-.055.178-.056.177-.057.177-.058.177-.059.176-.06.175-.061.175-.062.175-.063.174-.064.174-.066.173-.066.172-.067.172-.068.172-.07.171-.07.17-.071.17-.073.17-.073.169-.074.168-.076.168-.076.167-.077.167-.079.166-.079.166-.08.165-.081.165-.083.164-.083.163-.084.163-.085.162-.086.162-.087.161-.088.161-.088.16-.09.159-.091.159-.092.158-.092.158-.094.157-.094.156-.095.156-.096.155-.098.154-.098.154-.099.153-.099.153-.101.152-.102.151-.102.151-.104.15-.104.149-.105.149-.106.148-.107.147-.107.147-.109.146-.109.145-.111.145-.111.144-.112.143-.113.143-.113.142-.115.141-.115.141-.116.139-.117.14-.118.138-.118.138-.12.137-.12.136-.121.135-.122.135-.122.134-.124.134-.124.132-.125.132-.125.131-.127.13-.127.13-.128.129-.129.128-.13.127-.13.127-.131.125-.132.125-.132.124-.134.124-.134.122-.135.122-.135.121-.136.12-.137.12-.138.118-.138.118-.14.117-.139.116-.141.115-.141.115-.142.113-.143.113-.143.112-.144.111-.145.111-.145.109-.146.109-.147.107-.147.107-.148.106-.149.105-.149.104-.15.104-.151.102-.151.102-.152.101-.153.099-.153.099-.154.098-.154.098-.155.096-.156.095-.156.094-.157.094-.158.092-.158.092-.159.091-.159.09-.16.088-.161.088-.161.087-.162.086-.162.085-.163.084-.163.083-.164.083-.165.081-.165.08-.166.079-.166.079-.167.077-.167.076-.168.076-.168.074-.169.073-.17.073-.17.071-.17.07-.171.07-.172.068-.172.067-.172.066-.173.066-.174.064-.174.063-.175.062-.175.061-.175.06-.176.059-.177.058-.177.057-.177.056-.178.055-.178.054-.179.052-.18.052-.179.05-.181.05-.18.048-.181.047-.182.046-.182.046-.182.043-.183.043-.183.042-.184.041-.184.039-.184.039-.185.037-.185.036-.186.035-.186.034-.187.033-.186.031-.188.031-.187.029-.188.028-.189.027-.188.026-.189.025-.19.023-.19.022-.19.022-.19.02-.191.018-.192.018-.191.016-.192.016-.192.014-.193.013-.193.011-.193.011-.193.009-.194.008-.194.007-.195.005-.195.004-.195.004-.195.001-.196.001H30.271l-.196-.001-.195-.001-.195-.004-.195-.004-.195-.005-.194-.007-.194-.008-.193-.009-.193-.011-.193-.011-.193-.013-.192-.014-.192-.016-.191-.016-.192-.018-.191-.018-.19-.02-.19-.022-.19-.022-.19-.023-.189-.025-.188-.026-.189-.027-.188-.028-.187-.029-.188-.031-.186-.031-.187-.033-.186-.034-.186-.035-.185-.036-.185-.037-.184-.039-.184-.039-.184-.041-.183-.042-.183-.043-.182-.043-.182-.046-.182-.046-.181-.047-.18-.048-.181-.05-.179-.05-.18-.052-.179-.052-.178-.054-.178-.055-.177-.056-.177-.057-.177-.058-.176-.059-.175-.06-.175-.061-.175-.062-.174-.063-.174-.064-.173-.066-.172-.066-.172-.067-.172-.068-.171-.07-.17-.07-.17-.071-.17-.073-.169-.073-.168-.074-.168-.076-.167-.076-.167-.077-.166-.079-.166-.079-.165-.08-.165-.081-.164-.083-.163-.083-.163-.084-.162-.085-.162-.086-.161-.087-.161-.088-.16-.088-.159-.09-.159-.091-.158-.092-.158-.092-.157-.094-.156-.094-.156-.095-.155-.096-.154-.098-.154-.098-.153-.099-.153-.099-.152-.101-.151-.102-.151-Line truncated
style="fill:#e3292e;fill-opacity:1"
id="path4" />
<g
id="g16">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="translate(-2.511 12.577)"
id="path6" />
<path
d="m152.591 65.891.415.004.414.007.413.009.413.012.412.014.411.017.411.019.41.023.409.024.409.027.407.03.408.033.406.034.406.038.405.04.404.042.404.045.403.047.402.05.401.053.401.054.399.058.399.059.398.063.398.064.396.067.396.07.395.072.394.074.393.077.392.079.392.081.39.084.39.086.389.089.388.091.387.093.386.096.385.098.384.1.384.102.382.105.381.107.381.11.379.112.379.114.378.116.376.118.376.121.374.123.374.125.372.128.372.129.37.132.37.134.368.137.367.138.366.141.366.142.364.145.363.148.361.149.361.151.36.154.358.155.358.158.356.16.355.162.354.164.353.166.351.168.351.171.349.172.348.174.347.177.345.178.345.181.343.182.342.185.341.186.339.189.338.19.337.193.336.194.334.196.333.199.332.2.33.202.33.205.327.206.327.208.325.21.324.211.322.214.321.216.32.217.319.22.316.221.316.223.314.225.313.226.311.229.31.23.309.233.307.234.305.235.304.238.303.239.301.242.3.242.298.245.297.247.295.248.294.25.292.251.291.254.289.255.287.256.286.259.285.26.283.262.281.263.28.265.278.267.277.269.275.27.273.271.272.274.27.275.268.276.267.278.265.28.264.281.261.283.261.285.258.286.257.287.255.29.253.29.252.292.25.294.248.295.246.297.245.298.243.3.241.301.239.303.238.304.236.306.234.307.232.308.23.31.229.311.227.313.224.314.224.316.221.317.219.318.218.32.215.321.214.322.212.324.21.325.208.327.206.328.204.329.202.33.2.332.199.333.196.335.195.335.192.337.191.338.188.34.187.34.184.342.183.343.18.345.179.346.176.346.174.348.173.35.17.35.168.352.166.352.164.354.162.355.16.357.158.357.156.359.153.359.152.361.149.362.147.363.145.364.143.365.14.366.139.367.136.369.134.369.132.371.13.371.127.373.125.373.123.375.121.375.119.377.116.377.114.379.112.379.109.381.107.381.105.383.103.383.1.384.098.385.095.387.094.387.09.387.089.389.086.39.084.391.082.391.079.392.076.393.075.395.072.394.069.396.067.397.065.397.062.398.06.399.057.4.055.4.052.402.05.402.047.402.045.404.043.404.04.405.037.406.035.407.032.407.03.408.027.408.025.41.022.41.019.41.017.412.015.412.012.412.009.414.006.414.004.414.002.415-.001.404-.004.4.223.037.223.038.222.04.222.041.221.042.221.043.22.044.22.045.22.047.219.048.218.049.219.05.217.051.218.052.216.054.217.055.216.055.215.057.215.059.214.059.214.06.214.062.213.062.212.064.212.065.212.066.211.067.21.068.21.069.21.07.208.072.209.072.208.074.207.074.207.076.206.077.206.078.205.079.204.08.205.081.203.082.203.083.202.084.202.085.402.174.2.088.2.09.199.09.198.091.198.093.197.093.392.19.196.097.194.097.388.198.193.101.192.101.192.103.191.103.38.21.189.106.376.216.187.109.187.11.37.224.185.113.184.114.183.115.364.232.181.118.36.238.179.121.178.121.178.123.177.123.176.124.176.125.174.126.174.127.174.128.172.128.172.13.171.13.171.131.338.266.168.133.168.135.332.272.165.137.328.278.163.139.162.141.161.142.16.142.16.143.159.144.158.145.157.145.157.147.155.147.155.148.154.149.306.3.151.151.151.153.15.152.149.154.148.154.147.155.147.156.146.157.288.316.143.159.143.16.141.16.14.161.14.162.139.163.138.163.137.165.136.165.135.165.268.334.132.167.132.169.13.169.13.17.129.171.128.171.127.172.126.173.125.173.124.174.123.175.123.176.121.176.24.354.118.178.118.179.116.179.116.18.115.181.226.364.112.182.22.368.109.184.108.185.106.186.106.187.105.187.103.187.103.189.102.189.1.189.1.19.099.191.097.191.097.192.095.192.095.193.093.194.092.194.092.195.09.195.089.196.088.196.087.197.086.198.085.198.084.198.082.2.082.199.081.201.079.2.078.202.078.201.076.203.075.203.074.203.073.204.071.204.071.205.069.205.069.206.067.207.066.207.065.207.126.416.122.418.059.21.058.21.057.211.11.422.053.212.052.213.051.213.05.213.096.428.046.215.045.215.044.215.084.432.04.217.039.217.074.436.035.218.034.219.033.219.062.44.029.22.027.22.027.222.025.221.024.222.023.222.021.222.02.223.019.223.018.224.016.224.015.224.014.225.013.225.011.225.01.225.008.226.008.227.006.226.004.227.003.227.002.228.001.227-.001.254-.002.254-.004.253-.006.253-.007.252-.009.252-.011.252-.012.251-.014.251-.016.25-.017.25-.018.249-.021.249-.022.249-.023.248-.025.248-.027.247-.028.247-.03.246-.031.246-.033.246-.034.244-.036.245-.038.244-.039.243-.04.243-.042.243-.044.242-.045.241-.046.241-.049.241-.049.24-.051.239-.053.239-.054.238-.055.238-.057.237-.059.237-.06.236-.061.236-.063.235-.065.234-.065.234-.068.233-.068.233-.07.232-.072.231-.073.231-.074.231-.076.229-.077.229-.078.229-.08.228-.082.227-.082.226-.085.226-.085.226-.087.224-.088.224-.09.223-.091.223-.092.222-.093.221-.095.221-.097.22-.097.219-.099.219-.101.218-.101.217-.103.216-.104.216-.106.215-.107.214-.108.214-.109.213-.111.212-.112.211-.113.211-.114.21-.116.209-.117.208-.118.208-.12.207-.12.206-.122.205-.124.204-.124.204-.126.203-.127.202-.128.201-.129.201-.13.199-.132.199-.133.198-.134.198-.135.196-.137.195-.137.195-.139.194-.14.193-.141.192-.142.191-.144.191-.144.189-.146.189-.146.188-.148.187-.149.186-.151.185-.151.184-.152.183-.154.183-.154.181-.156.181-.157.179-.157.179-.159.178-.16.177-.161.175-.162.175-.164.174-.164.173-.165.172-.166.171-.168.171-.168.169-.17.168-.17.167-.171.166-.173.165-.173.165-.175.163-.175.162-.177.161-.177.Line truncated
style="fill:#e3292e;fill-opacity:1"
transform="translate(-2.511 12.577)"
id="path8" />
<g
id="g14">
<path
d="M94.657 208.957h-1.486v-.027c-21.178-.783-38.132-18.223-38.132-39.592 0-19.576 14.229-35.855 32.9-39.05v-.161c0-35.453 28.783-64.237 64.237-64.237 35.454 0 64.238 28.784 64.238 64.237 0 .271-.002.538-.005.804 19.045 3.122 33.574 19.29 33.574 38.74 0 21.683-18.054 39.286-40.293 39.286H94.657Zm105.717-77.514.019-.004c.011-.436.017-.873.017-1.312 0-26.621-21.613-48.234-48.234-48.234-4.677 0-9.199.667-13.476 1.911-20.932 5.493-36.369 24.279-36.369 46.582a47.305 47.305 0 0 0 3.775 18.568 23.546 23.546 0 0 0-11.449-2.952c-13.063 0-23.669 10.606-23.669 23.669 0 13.064 10.606 23.67 23.669 23.67h115.614c13.064 0 23.67-10.606 23.67-23.67 0-13.063-10.606-23.669-23.67-23.669a23.56 23.56 0 0 0-14.616 5.056 47.28 47.28 0 0 0 4.719-19.615Z"
style="fill:#2d67b9"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path10" />
<path
d="m151.761 65.891-.415.004-.414.007-.413.009-.413.012-.412.014-.411.017-.411.019-.41.023-.409.024-.408.027-.408.03-.408.033-.406.034-.406.038-.405.04-.404.042-.404.045-.403.047-.402.05-.401.053-.401.054-.399.058-.399.059-.398.063-.398.064-.396.067-.396.07-.395.072-.394.074-.393.077-.392.079-.392.081-.39.084-.39.086-.389.089-.388.091-.387.093-.386.096-.385.098-.384.1-.384.102-.382.105-.381.107-.381.11-.379.112-.379.114-.377.116-.377.118-.376.121-.374.123-.374.125-.372.128-.372.129-.37.132-.369.134-.369.137-.367.138-.366.141-.365.142-.365.145-.362.148-.362.149-.361.151-.36.154-.358.155-.358.158-.356.16-.355.162-.354.164-.353.166-.351.168-.351.171-.349.172-.348.174-.347.177-.345.178-.345.181-.343.182-.342.185-.341.186-.339.189-.338.19-.337.193-.336.194-.334.196-.333.199-.332.2-.33.202-.33.205-.327.206-.327.208-.325.21-.324.211-.322.214-.321.216-.32.217-.318.22-.317.221-.316.223-.314.225-.313.226-.311.229-.31.23-.309.233-.307.234-.305.235-.304.238-.303.239-.301.242-.3.242-.298.245-.297.247-.295.248-.294.25-.292.251-.291.254-.289.255-.287.256-.286.259-.285.26-.283.262-.281.263-.28.265-.278.267-.277.269-.275.27-.273.271-.272.274-.27.275-.268.276-.267.278-.265.28-.263.281-.262.283-.26.285-.259.286-.257.287-.255.29-.253.29-.252.292-.25.294-.248.295-.246.297-.245.298-.243.3-.241.301-.239.303-.238.304-.236.306-.234.307-.232.308-.23.31-.229.311-.226.313-.225.314-.223.316-.222.317-.219.318-.217.32-.216.321-.214.322-.212.324-.21.325-.208.327-.206.328-.204.329-.202.33-.2.332-.199.333-.196.335-.195.335-.192.337-.191.338-.188.34-.187.34-.184.342-.183.343-.18.345-.179.346-.176.346-.174.348-.173.35-.17.35-.168.352-.166.352-.164.354-.162.355-.16.357-.158.357-.156.359-.153.359-.151.361-.15.362-.147.363-.145.364-.143.365-.14.366-.139.367-.136.369-.134.369-.132.371-.13.371-.127.373-.125.373-.123.375-.121.375-.118.377-.117.377-.114.379-.111.379-.11.381-.107.381-.105.383-.102.383-.101.384-.098.385-.095.387-.093.387-.091.387-.089.389-.086.39-.084.391-.081.391-.08.392-.076.393-.075.395-.071.394-.07.396-.067.397-.065.397-.062.398-.06.399-.057.4-.055.4-.052.402-.05.402-.047.402-.045.404-.043.404-.039.405-.038.406-.035.407-.032.407-.03.408-.027.408-.025.41-.022.41-.019.41-.017.412-.015.412-.011.412-.01.414-.006.414-.004.414-.001.415v.161l-.219.039-.218.039-.218.04-.217.042-.217.043-.217.044-.216.045-.216.046-.215.048-.215.048-.214.05-.214.051-.213.052-.213.053-.213.055-.212.055-.211.057-.212.058-.21.059-.21.06-.21.061-.209.063-.209.063-.208.065-.208.066-.208.067-.206.068-.207.069-.205.07-.206.071-.204.072-.205.074-.203.074-.204.076-.202.077-.202.077-.202.079-.201.08-.201.081-.2.082-.199.083-.199.084-.198.085-.198.087-.197.087-.197.088-.196.09-.196.09-.195.091-.194.093-.194.093-.193.095-.193.095-.192.097-.191.097-.191.099-.19.1-.19.1-.189.102-.188.102-.188.104-.187.104-.187.106-.186.106-.185.107-.185.109-.184.109-.183.111-.183.111-.182.112-.181.113-.181.114-.18.115-.18.116-.178.117-.179.118-.177.119-.177.12-.176.121-.175.121-.175.123-.174.123-.173.125-.173.125-.172.126-.171.127-.171.128-.17.129-.169.13-.168.13-.168.132-.167.132-.166.133-.165.135-.165.135-.164.135-.163.137-.163.138-.162.138-.161.14-.16.14-.159.141-.159.142-.158.142-.157.144-.157.144-.155.145-.155.146-.154.147-.154.148-.152.148-.152.149-.151.15-.15.151-.149.152-.148.152-.148.154-.147.154-.146.154-.145.156-.145.156-.143.158-.143.157-.142.159-.141.16-.14.16-.139.161-.139.162-.138.162-.136.163-.136.164-.135.165-.134.165-.134.166-.132.167-.132.168-.13.168-.13.169-.129.17-.128.171-.127.171-.127.172-.125.172-.124.174-.124.174-.122.174-.122.176-.121.176-.12.177-.118.177-.118.178-.117.179-.116.179-.116.18-.114.181-.113.181-.112.182-.112.183-.11.183-.109.184-.109.185-.107.185-.107.186-.105.187-.105.187-.104.188-.102.188-.102.189-.1.19-.1.19-.098.191-.098.191-.097.192-.095.193-.095.193-.093.194-.093.194-.091.195-.091.195-.089.196-.088.197-.088.197-.086.198-.085.198-.085.199-.083.2-.082.2-.081.2-.08.201-.079.202-.077.202-.077.203-.076.203-.074.203-.074.205-.072.204-.072.206-.07.205-.069.207-.068.206-.067.208-.066.207-.064.209-.064.208-.062.21-.062.209-.06.211-.059.21-.058.211-.057.212-.055.212-.055.212-.053.213-.052.214-.051.214-.05.214-.049.215-.048.215-.046.216-.045.216-.044.216-.043.217-.042.217-.04.218-.04.218-.038.219-.037.219-.035.219-.035.22-.033.22-.032.221-.031.221-.03.221-.028.222-.027.222-.026.222-.025.223-.024.223-.022.224-.021.224-.02.224-.018.225-.017.225-.016.225-.015.226-.014.226-.012.226-.011.227-.009.227-.009.228-.007.227-.006.228-.004.229-.004.228-.002.229v.229l.001.251.002.25.004.249.005.249.007.249.009.248.01.248.011.248.013.247.015.247.016.246.017.246.019.246.021.245.022.245.023.244.025.244.027.243.028.243.029.243.031.242.032.241.034.242.035.24.037.241.038.239.04.24.041.238.042.239.044.238.045.237.047.237.048.236.049.236.051.235.052.235.054.234.055.234.056.233.058.233.059.232.122.462.064.231.064.23.066.229.067.229.069.228.07.228.071.227.073.226.074.226.075.225.076.225.078.224.079.223.081.223.082.222.083.222.084.221.085.22.087.22.088.219.18.436.092.217.093.Line truncated
style="fill:#e3292e;fill-opacity:1"
transform="matrix(-1 0 0 1 302.511 12.577)"
id="path12" />
</g>
</g>
<path
d="m 114.30977,144.2723 h 50.31577 L 154.3183,133.29689 h 16.00038 l 16.01264,17.05067 -16.01264,17.04991 h -15.98379 l 10.44067,-11.1175 h -50.46579 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path8-7" /><path
d="M 186.44817,172.91513 H 136.1324 l 10.30725,-10.97541 h -16.00039 l -16.01264,17.05067 16.01264,17.04991 h 15.98379 l -10.44067,-11.1175 h 50.46579 z"
style="clip-rule:evenodd;fill:#e3292e;fill-rule:evenodd;stroke-width:0.744302;stroke-linejoin:round;stroke-miterlimit:1.41421;fill-opacity:1"
id="path10-5" /></svg>

After

Width:  |  Height:  |  Size: 78 KiB

+207
View File
@@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
width="4.5009999cm"
height="2.0009999cm"
viewBox="0.2 0.149 4.7 2.151"
id="svg2"
sodipodi:docname="nat.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="namedview30"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="cm"
showgrid="false"
inkscape:lockguides="true"
inkscape:zoom="5.7444245"
inkscape:cx="75.725602"
inkscape:cy="42.040765"
inkscape:window-width="1658"
inkscape:window-height="1016"
inkscape:window-x="70"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<metadata
id="metadata57">
<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: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="defs55" />
<path
d="m 3.7599791,0.61531938 -10e-4,-0.021 -0.003,-0.021 -0.007,-0.02 -0.009,-0.02 -0.011,-0.021 -0.013,-0.02 -0.017,-0.02 -0.018,-0.019 -0.021,-0.019 -0.023,-0.019 -0.024,-0.017 -0.028,-0.017 -0.03,-0.017 -0.031,-0.017 -0.033,-0.015 -0.035,-0.015 -0.037,-0.014 -0.038,-0.013 -0.04,-0.012 -0.041,-0.011 -0.043,-0.011 -0.045,-0.01 -0.044,-0.008 -0.046,-0.008 -0.048,-0.007 -0.047,-0.006 -0.048,-0.004 -0.049,-0.004 -0.05,-0.003 -0.049,-0.001 -0.049,-0.001 0,0 -0.05,0.001 -0.049,0.001 -0.05,0.003 -0.048,0.004 -0.049,0.004 -0.047,0.006 -0.047,0.007 -0.046,0.008 -0.045,0.008 -0.043,0.01 -0.043,0.011 -0.042,0.011 -0.04,0.012 -0.039,0.013 -0.036,0.014 -0.035,0.015 -0.033,0.015 -0.032,0.017 -0.029,0.017 -0.027,0.017 -0.026,0.017 -0.023,0.019 -0.02,0.019 -0.019,0.019 -0.016,0.02 -0.014,0.02 -0.01,0.021 -0.009,0.02 -0.006,0.02 -0.005,0.021 -0.001,0.021 0,0 0.001,0.02 0.005,0.022 0.006,0.02 0.009,0.021 0.01,0.02 0.014,0.019 0.016,0.02 0.019,0.02 0.02,0.019 0.023,0.018 0.026,0.018 0.027,0.017 0.029,0.017 0.032,0.016 0.033,0.016 0.035,0.014 0.036,0.014 0.039,0.013 0.04,0.013 0.042,0.011 0.043,0.01 0.043,0.011 0.045,0.008 0.046,0.007 0.047,0.007 0.047,0.006 0.049,0.005 0.048,0.003 0.05,0.003 0.049,10e-4 0.05,0.001 0,0 0.049,-0.001 0.049,-10e-4 0.05,-0.003 0.049,-0.003 0.048,-0.005 0.047,-0.006 0.048,-0.007 0.046,-0.007 0.044,-0.008 0.045,-0.011 0.043,-0.01 0.041,-0.011 0.04,-0.013 0.038,-0.013 0.037,-0.014 0.035,-0.014 0.033,-0.016 0.031,-0.016 0.03,-0.017 0.028,-0.017 0.024,-0.018 0.023,-0.018 0.021,-0.019 0.018,-0.02 0.017,-0.02 0.013,-0.019 0.011,-0.02 0.009,-0.021 0.007,-0.02 0.003,-0.022 10e-4,-0.02"
id="path4"
style="fill:#ffffff;stroke:none" />
<path
d="m 2.2259791,0.83031938 -10e-4,-0.021 -0.003,-0.02 -0.004,-0.021 -0.007,-0.02 -0.009,-0.021 -0.01,-0.02 -0.012,-0.02 -0.015,-0.018 -0.015,-0.019 -0.018,-0.019 -0.019,-0.018 -0.021,-0.017 -0.022,-0.017 -0.024,-0.016 -0.026,-0.015 -0.026,-0.015 -0.029,-0.014 -0.029,-0.013 -0.031,-0.013 -0.032,-0.011 -0.032,-0.011 -0.034,-0.009 -0.035,-0.009 -0.035,-0.008 -0.036,-0.006 -0.036,-0.006 -0.037,-0.005 -0.038,-0.004 -0.037,-0.002 -0.039,-0.002 -0.038,0 0,0 -0.037,0 -0.038,0.002 -0.038,0.002 -0.038,0.004 -0.037,0.005 -0.036,0.006 -0.036,0.006 -0.035,0.008 -0.035,0.009 -0.033,0.009 -0.033,0.011 -0.032,0.011 -0.03,0.013 -0.03,0.013 -0.028,0.014 -0.027,0.015 -0.025,0.015 -0.024,0.016 -0.023,0.017 -0.021,0.017 -0.018,0.018 -0.019,0.019 -0.015,0.019 -0.015,0.018 -0.012,0.02 -0.011,0.02 -0.008,0.021 -0.007,0.02 -0.005,0.021 -0.002,0.02 -0.001,0.021 0,0 0.001,0.021 0.002,0.021 0.005,0.02 0.007,0.021 0.008,0.02 0.011,0.02 0.012,0.02 0.015,0.019 0.015,0.019 0.019,0.018 0.018,0.018 0.021,0.018 0.023,0.016 0.024,0.016 0.025,0.016 0.027,0.014 0.028,0.015 0.03,0.012 0.03,0.013 0.032,0.012 0.033,0.01 0.033,0.01 0.035,0.008 0.035,0.008 0.036,0.007 0.036,0.005 0.037,0.005 0.038,0.004 0.038,0.002 0.038,0.002 0.037,0 0,0 0.038,0 0.039,-0.002 0.037,-0.002 0.038,-0.004 0.037,-0.005 0.036,-0.005 0.036,-0.007 0.035,-0.008 0.035,-0.008 0.034,-0.01 0.032,-0.01 0.032,-0.012 0.031,-0.013 0.029,-0.012 0.029,-0.015 0.026,-0.014 0.026,-0.016 0.024,-0.016 0.022,-0.016 0.021,-0.018 0.019,-0.018 0.018,-0.018 0.015,-0.019 0.015,-0.019 0.012,-0.02 0.01,-0.02 0.009,-0.02 0.007,-0.021 0.004,-0.02 0.003,-0.021 10e-4,-0.021"
id="path6"
style="fill:#ffffff;stroke:none" />
<path
d="m 1.2809791,1.2493194 -10e-4,-0.017 -0.001,-0.017 -0.004,-0.017 -0.005,-0.017 -0.005,-0.016 -0.007,-0.016 -0.009,-0.016 -0.009,-0.017 -0.011,-0.015 -0.012,-0.015 -0.012,-0.014 -0.014,-0.015 -0.015,-0.014 -0.017,-0.012 -0.017,-0.013 -0.018,-0.012 -0.019,-0.011 -0.02,-0.011 -0.02,-0.01 -0.022,-0.01 -0.022,-0.008 -0.023,-0.008 -0.023,-0.007 -0.024,-0.006 -0.024,-0.006 -0.025,-0.004 -0.024,-0.005 -0.026,-0.002 -0.025,-0.002 -0.025,-0.002 -0.026,0 0,0 -0.026,0 -0.026,0.002 -0.025,0.002 -0.025,0.002 -0.024,0.005 -0.026,0.004 -0.024,0.006 -0.023,0.006 -0.023,0.007 -0.023,0.008 -0.022,0.008 -0.022,0.01 -0.021,0.01 -0.019,0.011 -0.019,0.011 -0.018,0.012 -0.017,0.013 -0.017,0.012 -0.015,0.014 -0.014,0.015 -0.013,0.014 -0.011,0.015 -0.011,0.015 -0.01,0.017 -0.008,0.016 -0.007,0.016 -0.006,0.016 -0.004,0.017 -0.004,0.017 -0.002,0.017 0,0.017 0,0 0,0.016 0.002,0.018 0.004,0.016 0.004,0.017 0.006,0.017 0.007,0.016 0.008,0.016 0.01,0.015 0.011,0.016 0.011,0.015 0.013,0.015 0.014,0.014 0.015,0.014 0.017,0.013 0.017,0.012 0.018,0.012 0.019,0.012 0.019,0.01 0.021,0.01 0.022,0.01 0.022,0.008 0.023,0.008 0.023,0.007 0.023,0.007 0.024,0.005 0.026,0.005 0.024,0.004 0.025,0.003 0.025,10e-4 0.026,0.002 0.026,0.001 0,0 0.026,-0.001 0.025,-0.002 0.025,-10e-4 0.026,-0.003 0.024,-0.004 0.025,-0.005 0.024,-0.005 0.024,-0.007 0.023,-0.007 0.023,-0.008 0.022,-0.008 0.022,-0.01 0.02,-0.01 0.02,-0.01 0.019,-0.012 0.018,-0.012 0.017,-0.012 0.017,-0.013 0.015,-0.014 0.014,-0.014 0.012,-0.015 0.012,-0.015 0.011,-0.016 0.009,-0.015 0.009,-0.016 0.007,-0.016 0.005,-0.017 0.005,-0.017 0.004,-0.016 0.001,-0.018 10e-4,-0.016"
id="path8"
style="fill:#ffffff;stroke:none" />
<path
d="m 2.0969791,1.5713194 -0.002,-0.018 -0.003,-0.018 -0.004,-0.019 -0.007,-0.018 -0.009,-0.017 -0.01,-0.018 -0.013,-0.017 -0.015,-0.018 -0.016,-0.016 -0.017,-0.016 -0.019,-0.016 -0.021,-0.016 -0.024,-0.015 -0.024,-0.014 -0.026,-0.013 -0.027,-0.013 -0.028,-0.012 -0.031,-0.012 -0.03,-0.011 -0.032,-0.01 -0.034,-0.009 -0.035,-0.009 -0.034,-0.008 -0.036,-0.007 -0.036,-0.005 -0.038,-0.006 -0.037,-0.004 -0.038,-0.003 -0.038,-0.002 -0.039,-0.002 -0.038,0 0,0 -0.038,0 -0.039,0.002 -0.039,0.002 -0.038,0.003 -0.037,0.004 -0.037,0.006 -0.037,0.005 -0.035,0.007 -0.035,0.008 -0.034,0.009 -0.034,0.009 -0.032,0.01 -0.031,0.011 -0.03,0.012 -0.029,0.012 -0.027,0.013 -0.026,0.013 -0.024,0.014 -0.023,0.015 -0.021,0.016 -0.019,0.016 -0.018,0.016 -0.017,0.016 -0.014,0.018 -0.012,0.017 -0.01,0.018 -0.01,0.017 -0.006,0.018 -0.005,0.019 -0.003,0.018 -0.001,0.018 0,0 0.001,0.019 0.003,0.018 0.005,0.018 0.006,0.018 0.01,0.019 0.01,0.017 0.012,0.017 0.014,0.018 0.017,0.016 0.018,0.016 0.019,0.016 0.021,0.015 0.023,0.015 0.024,0.015 0.026,0.014 0.027,0.012 0.029,0.013 0.03,0.011 0.031,0.011 0.032,0.01 0.034,0.01 0.034,0.008 0.035,0.008 0.035,0.006 0.037,0.007 0.037,0.004 0.037,0.005 0.038,0.003 0.039,0.003 0.039,10e-4 0.038,0 0,0 0.038,0 0.039,-10e-4 0.038,-0.003 0.038,-0.003 0.037,-0.005 0.038,-0.004 0.036,-0.007 0.036,-0.006 0.034,-0.008 0.035,-0.008 0.034,-0.01 0.032,-0.01 0.03,-0.011 0.031,-0.011 0.028,-0.013 0.027,-0.012 0.026,-0.014 0.024,-0.015 0.024,-0.015 0.021,-0.015 0.019,-0.016 0.017,-0.016 0.016,-0.016 0.015,-0.018 0.013,-0.017 0.01,-0.017 0.009,-0.019 0.007,-0.018 0.004,-0.018 0.003,-0.018 0.002,-0.019"
id="path10"
style="fill:#ffffff;stroke:none" />
<path
d="m 3.9229791,1.7583194 -0.002,-0.021 -0.004,-0.022 -0.007,-0.022 -0.011,-0.021 -0.012,-0.021 -0.016,-0.021 -0.019,-0.021 -0.021,-0.02 -0.024,-0.02 -0.027,-0.02 -0.029,-0.018 -0.032,-0.019 -0.033,-0.017 -0.037,-0.017 -0.039,-0.016 -0.04,-0.016 -0.043,-0.014 -0.045,-0.014 -0.046,-0.013 -0.048,-0.012 -0.05,-0.01 -0.051,-0.011 -0.052,-0.009 -0.054,-0.008 -0.054,-0.007 -0.056,-0.006 -0.055,-0.005 -0.057,-0.004 -0.057,-0.002 -0.058,-0.002 -0.057,0 0,0 -0.057,0 -0.058,0.002 -0.057,0.002 -0.057,0.004 -0.056,0.005 -0.055,0.006 -0.054,0.007 -0.054,0.008 -0.052,0.009 -0.051,0.011 -0.05,0.01 -0.048,0.012 -0.047,0.013 -0.044,0.014 -0.043,0.014 -0.04,0.016 -0.039,0.016 -0.037,0.017 -0.034,0.017 -0.031,0.019 -0.029,0.018 -0.027,0.02 -0.024,0.02 -0.021,0.02 -0.018,0.021 -0.017,0.021 -0.012,0.021 -0.011,0.021 -0.007,0.022 -0.005,0.022 -10e-4,0.021 0,0 10e-4,0.023 0.005,0.021 0.007,0.022 0.011,0.021 0.012,0.022 0.017,0.02 0.018,0.021 0.021,0.02 0.024,0.02 0.027,0.02 0.029,0.018 0.031,0.018 0.034,0.018 0.037,0.017 0.039,0.016 0.04,0.016 0.043,0.015 0.044,0.013 0.047,0.013 0.048,0.012 0.05,0.011 0.051,0.01 0.052,0.009 0.054,0.009 0.054,0.007 0.055,0.005 0.056,0.005 0.057,0.004 0.057,0.003 0.058,0.002 0.057,0 0,0 0.057,0 0.058,-0.002 0.057,-0.003 0.057,-0.004 0.055,-0.005 0.056,-0.005 0.054,-0.007 0.054,-0.009 0.052,-0.009 0.051,-0.01 0.05,-0.011 0.048,-0.012 0.046,-0.013 0.045,-0.013 0.043,-0.015 0.04,-0.016 0.039,-0.016 0.037,-0.017 0.033,-0.018 0.032,-0.018 0.029,-0.018 0.027,-0.02 0.024,-0.02 0.021,-0.02 0.019,-0.021 0.016,-0.02 0.012,-0.022 0.011,-0.021 0.007,-0.022 0.004,-0.021 0.002,-0.023"
id="path12"
style="fill:#ffffff;stroke:none" />
<path
d="m 4.5529791,0.76631938 0,-0.016 -0.003,-0.016 -0.004,-0.017 -0.008,-0.016 -0.007,-0.016 -0.011,-0.016 -0.012,-0.015 -0.013,-0.015 -0.016,-0.015 -0.017,-0.015 -0.019,-0.013 -0.02,-0.014 -0.022,-0.013 -0.023,-0.013 -0.025,-0.012 -0.026,-0.011 -0.027,-0.012 -0.029,-0.01 -0.03,-0.01 -0.031,-0.009 -0.031,-0.008 -0.033,-0.008 -0.034,-0.007 -0.034,-0.006 -0.035,-0.005 -0.035,-0.005 -0.036,-0.003 -0.037,-0.003 -0.036,-0.002 -0.037,-0.001 -0.037,0 0,0 -0.037,0 -0.036,0.001 -0.038,0.002 -0.035,0.003 -0.036,0.003 -0.036,0.005 -0.034,0.005 -0.035,0.006 -0.034,0.007 -0.032,0.008 -0.032,0.008 -0.031,0.009 -0.03,0.01 -0.028,0.01 -0.028,0.012 -0.026,0.011 -0.025,0.012 -0.023,0.013 -0.022,0.013 -0.02,0.014 -0.019,0.013 -0.016,0.015 -0.016,0.015 -0.014,0.015 -0.012,0.015 -0.01,0.016 -0.009,0.016 -0.006,0.016 -0.005,0.017 -0.002,0.016 -10e-4,0.016 0,0 10e-4,0.016 0.002,0.016 0.005,0.017 0.006,0.016 0.009,0.016 0.01,0.016 0.012,0.016 0.014,0.014 0.016,0.016 0.016,0.014 0.019,0.014 0.02,0.013 0.022,0.014 0.023,0.013 0.025,0.012 0.026,0.011 0.028,0.011 0.028,0.011 0.03,0.009 0.031,0.009 0.032,0.009 0.032,0.007 0.034,0.007 0.035,0.006 0.034,0.006 0.036,0.004 0.036,0.003 0.035,0.003 0.038,0.003 0.036,0 0.037,10e-4 0,0 0.037,-10e-4 0.037,0 0.036,-0.003 0.037,-0.003 0.036,-0.003 0.035,-0.004 0.035,-0.006 0.034,-0.006 0.034,-0.007 0.033,-0.007 0.031,-0.009 0.031,-0.009 0.03,-0.009 0.029,-0.011 0.027,-0.011 0.026,-0.011 0.025,-0.012 0.023,-0.013 0.022,-0.014 0.02,-0.013 0.019,-0.014 0.017,-0.014 0.016,-0.016 0.013,-0.014 0.012,-0.016 0.011,-0.016 0.007,-0.016 0.008,-0.016 0.004,-0.017 0.003,-0.016 0,-0.016"
id="path14"
style="fill:#ffffff;stroke:none" />
<path
d="m 4.7599791,1.1813194 -10e-4,-0.016 -0.002,-0.016 -0.005,-0.017 -0.007,-0.016 -0.008,-0.016 -0.01,-0.016 -0.012,-0.016 -0.013,-0.014 -0.015,-0.015 -0.018,-0.015 -0.019,-0.014 -0.019,-0.013 -0.022,-0.013 -0.023,-0.014 -0.024,-0.011 -0.027,-0.012 -0.027,-0.011 -0.028,-0.01 -0.03,-0.01 -0.03,-0.009 -0.032,-0.008 -0.033,-0.008 -0.033,-0.007 -0.033,-0.005 -0.035,-0.006 -0.035,-0.004 -0.036,-0.004 -0.036,-0.003 -0.036,-0.002 -0.037,-0.001 -0.036,-0.001 0,0 -0.038,0.001 -0.036,0.001 -0.036,0.002 -0.036,0.003 -0.036,0.004 -0.035,0.004 -0.035,0.006 -0.033,0.005 -0.034,0.007 -0.032,0.008 -0.032,0.008 -0.03,0.009 -0.03,0.01 -0.028,0.01 -0.027,0.011 -0.027,0.012 -0.024,0.011 -0.022,0.014 -0.022,0.013 -0.021,0.013 -0.018,0.014 -0.018,0.015 -0.015,0.015 -0.013,0.014 -0.012,0.016 -0.01,0.016 -0.008,0.016 -0.007,0.016 -0.005,0.017 -0.002,0.016 -10e-4,0.016 0,0 10e-4,0.016 0.002,0.016 0.005,0.016 0.007,0.016 0.008,0.017 0.01,0.016 0.012,0.015 0.013,0.015 0.015,0.015 0.018,0.015 0.018,0.013 0.021,0.014 0.022,0.013 0.022,0.013 0.024,0.012 0.027,0.011 0.027,0.012 0.028,0.01 0.03,0.01 0.03,0.009 0.032,0.008 0.032,0.007 0.034,0.007 0.033,0.006 0.035,0.005 0.035,0.005 0.036,0.004 0.036,0.003 0.036,0.002 0.036,0.001 0.038,0 0,0 0.036,0 0.037,-0.001 0.036,-0.002 0.036,-0.003 0.036,-0.004 0.035,-0.005 0.035,-0.005 0.033,-0.006 0.033,-0.007 0.033,-0.007 0.032,-0.008 0.03,-0.009 0.03,-0.01 0.028,-0.01 0.027,-0.012 0.027,-0.011 0.024,-0.012 0.023,-0.013 0.022,-0.013 0.019,-0.014 0.019,-0.013 0.018,-0.015 0.015,-0.015 0.013,-0.015 0.012,-0.015 0.01,-0.016 0.008,-0.017 0.007,-0.016 0.005,-0.016 0.002,-0.016 10e-4,-0.016"
id="path16"
style="fill:#ffffff;stroke:none" />
<path
d="m 4.6189791,1.5243194 -10e-4,-0.027 -0.002,-0.027 -0.005,-0.026 -0.006,-0.027 -0.009,-0.026 -0.01,-0.026 -0.012,-0.025 -0.014,-0.025 -0.014,-0.025 -0.017,-0.023 -0.018,-0.024 -0.021,-0.022 -0.021,-0.022 -0.023,-0.02 -0.024,-0.021 -0.027,-0.018 -0.027,-0.018 -0.027,-0.018 -0.029,-0.015 -0.031,-0.015 -0.032,-0.013 -0.031,-0.013 -0.033,-0.011 -0.034,-0.01 -0.035,-0.009 -0.035,-0.007 -0.036,-0.006 -0.035,-0.005 -0.036,-0.003 -0.036,-0.002 -0.036,-0.001 0,0 -0.037,0.001 -0.036,0.002 -0.036,0.003 -0.036,0.005 -0.035,0.006 -0.035,0.007 -0.035,0.009 -0.034,0.01 -0.033,0.011 -0.032,0.013 -0.031,0.013 -0.031,0.015 -0.029,0.015 -0.028,0.018 -0.027,0.018 -0.026,0.018 -0.024,0.021 -0.023,0.02 -0.022,0.022 -0.019,0.022 -0.019,0.024 -0.017,0.023 -0.015,0.025 -0.014,0.025 -0.011,0.025 -0.01,0.026 -0.008,0.026 -0.007,0.027 -0.005,0.026 -0.002,0.027 -10e-4,0.027 0,0 10e-4,0.027 0.002,0.027 0.005,0.026 0.007,0.026 0.008,0.026 0.01,0.026 0.011,0.026 0.014,0.025 0.015,0.024 0.017,0.024 0.019,0.023 0.019,0.022 0.022,0.022 0.023,0.021 0.024,0.02 0.026,0.019 0.027,0.018 0.028,0.017 0.029,0.016 0.031,0.015 0.031,0.013 0.032,0.013 0.033,0.011 0.034,0.01 0.035,0.008 0.035,0.008 0.035,0.006 0.036,0.005 0.036,0.003 0.036,0.002 0.037,10e-4 0,0 0.036,-10e-4 0.036,-0.002 0.036,-0.003 0.035,-0.005 0.036,-0.006 0.035,-0.008 0.035,-0.008 0.034,-0.01 0.033,-0.011 0.031,-0.013 0.032,-0.013 0.031,-0.015 0.029,-0.016 0.027,-0.017 0.027,-0.018 0.027,-0.019 0.024,-0.02 0.023,-0.021 0.021,-0.022 0.021,-0.022 0.018,-0.023 0.017,-0.024 0.014,-0.024 0.014,-0.025 0.012,-0.026 0.01,-0.026 0.009,-0.026 0.006,-0.026 0.005,-0.026 0.002,-0.027 10e-4,-0.027"
id="path18"
style="fill:#ffffff;stroke:none" />
<path
d="m 2.7919791,0.61131938 0.965,-0.091 -0.013,-0.021 -0.014,-0.019 -0.017,-0.02 -0.019,-0.02 -0.022,-0.019 -0.024,-0.018 -0.026,-0.018 -0.028,-0.017 -0.031,-0.017 -0.032,-0.016 -0.034,-0.015 -0.036,-0.014 -0.038,-0.014 -0.039,-0.013 -0.042,-0.012 -0.042,-0.011 -0.043,-0.011 -0.045,-0.009 -0.046,-0.009 -0.047,-0.007 -0.048,-0.007 -0.048,-0.005 -0.049,-0.004 -0.049,-0.004 -0.049,-0.002 -0.051,-0.001 -0.05,0 -0.05,0 -0.049,0.003 -0.05,0.002 -0.049,0.004 -0.049,0.006 -0.047,0.006 -0.048,0.007 -0.046,0.008 -0.045,0.009 -0.044,0.01 -0.043,0.011 -0.041,0.012 -0.04,0.013 -0.038,0.013 -0.036,0.014 -0.036,0.016 -0.032,0.015 -0.032,0.017 -0.029,0.017 -0.026,0.018 -0.024,0.018 -0.024,0.019 -0.02,0.018 -0.018,0.02 -0.015,0.02 -0.012,0.021 -0.011,0.02 0.971,0.077"
id="path22"
style="fill:#ffffff;stroke:none" />
<path
d="m 3.7569791,0.51931938 -0.013,-0.021 -0.014,-0.019 -0.017,-0.02 -0.02,-0.019 -0.022,-0.019 -0.024,-0.018 -0.026,-0.018 -0.029,-0.018 -0.03,-0.016 -0.032,-0.016 -0.035,-0.016 -0.035,-0.014 -0.038,-0.014 -0.04,-0.012 -0.04,-0.013 -0.042,-0.011 -0.044,-0.01 -0.045,-0.01 -0.046,-0.008 -0.046,-0.008 -0.048,-0.006 -0.048,-0.005 -0.049,-0.004 -0.05,-0.004 -0.05,-0.002 -0.049,-0.001 -0.051,0 -0.049,0 -0.049,0.003 -0.051,0.002 -0.048,0.004 -0.049,0.006 -0.047,0.006 -0.048,0.007 -0.046,0.008 -0.045,0.009 -0.043,0.01 -0.043,0.011 -0.042,0.012 -0.039,0.013 -0.038,0.013 -0.036,0.014 -0.036,0.015 -0.033,0.015 -0.031,0.017 -0.028,0.018 -0.028,0.017 -0.024,0.018 -0.022,0.019 -0.021,0.019 -0.018,0.019 -0.016,0.02 -0.012,0.021 -0.011,0.02"
id="path24"
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 1.4819791,0.82631938 0.486,-0.317 -0.029,-0.013 -0.032,-0.012 -0.032,-0.012 -0.033,-0.01 -0.034,-0.01 -0.035,-0.008 -0.036,-0.008 -0.036,-0.006 -0.037,-0.006 -0.037,-0.005 -0.038,-0.003 -0.038,-0.003 -0.039,-0.001 -0.038,0 -0.038,0 -0.038,0.002 -0.038,0.003 -0.038,0.004 -0.037,0.005 -0.036,0.006 -0.037,0.007 -0.035,0.008 -0.034,0.009 -0.034,0.009 -0.033,0.011 -0.031,0.013 -0.031,0.012 -0.029,0.013 -0.028,0.015 -0.027,0.015 -0.026,0.015 -0.024,0.016 -0.022,0.018 -0.021,0.017 -0.018,0.018 -0.018,0.02 -0.016,0.018 -0.014,0.02 -0.012,0.02 -0.01,0.02 -0.008,0.02 -0.006,0.022 -0.005,0.02 -0.003,0.021 0,0.021 0.001,0.021 0.003,0.021 0.005,0.021 0.74600003,-0.067"
id="path26"
style="fill:#ffffff;stroke:none" />
<path
d="m 1.9659791,0.50831938 -0.03,-0.014 -0.031,-0.011 -0.033,-0.012 -0.033,-0.01 -0.035,-0.01 -0.034,-0.008 -0.036,-0.008 -0.036,-0.006 -0.037,-0.005 -0.037,-0.005 -0.038,-0.004 -0.038,-0.002 -0.039,-0.001 -0.038,0 -0.038,0 -0.038,0.003 -0.038,0.002 -0.038,0.004 -0.037,0.005 -0.036,0.007 -0.036,0.006 -0.035,0.009 -0.034,0.008 -0.034,0.011 -0.033,0.011 -0.032,0.011 -0.03,0.013 -0.029,0.013 -0.028,0.015 -0.027,0.015 -0.025,0.015 -0.024,0.016 -0.022,0.018 -0.02,0.017 -0.02,0.019 -0.017,0.018 -0.016,0.019 -0.013,0.02 -0.012,0.02 -0.01,0.02 -0.008,0.021 -0.006,0.02 -0.005,0.021 -0.003,0.02 0,0.022 0.002,0.021 0.002,0.02 0.006,0.021"
id="path28"
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 1.3459791,1.5683194 -0.78100003,-0.012 0,0.019 0.001,0.019 0.003,0.019 0.006,0.018 0.008,0.019 0.009,0.018 0.012,0.018 0.014,0.018 0.015,0.017 0.017,0.017 0.019,0.017 0.02,0.016 0.023,0.015 0.023,0.015 0.026,0.015 0.027,0.014 0.027,0.012 0.03,0.013 0.031,0.012 0.032,0.01 0.034,0.011 0.033,0.009 0.035,0.008 0.036,0.008 0.037,0.007 0.038,0.006 0.037,0.005 0.039,0.004 0.039,0.003 0.039,0.003 0.04,10e-4 0.039,0 0.039,-10e-4 0.039,-0.002 0.039,-0.002 0.039,-0.003 0.039,-0.005 0.037,-0.006 0.037,-0.005 0.037,-0.008 0.035,-0.008 0.035,-0.009 0.033,-0.009 0.033,-0.01 0.033,-0.011 0.03,-0.013 -0.513,-0.282"
id="path30"
style="fill:#ffffff;stroke:none" />
<path
d="m 0.56497907,1.5563194 -0.001,0.019 0.002,0.019 0.003,0.018 0.006,0.019 0.008,0.018 0.01,0.019 0.011,0.018 0.014,0.018 0.015,0.017 0.017,0.017 0.018,0.016 0.02,0.016 0.023,0.016 0.024,0.015 0.024,0.014 0.026,0.014 0.029,0.013 0.029,0.013 0.032,0.011 0.032,0.011 0.032,0.01 0.034,0.009 0.035,0.009 0.037,0.008 0.036,0.006 0.037,0.007 0.038,0.005 0.038,0.004 0.039,0.003 0.039,0.002 0.039,0.002 0.04,0 0.039,0 0.039,-0.003 0.039,-0.002 0.038,-0.003 0.038,-0.005 0.038,-0.004 0.038,-0.007 0.036,-0.007 0.036,-0.008 0.034,-0.009 0.034,-0.009 0.034,-0.01 0.031,-0.011 0.03,-0.012"
id="path32"
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 3.8359791,0.75931938 0.689,0.104 0.011,-0.016 0.01,-0.015 0.007,-0.016 0.006,-0.016 0.003,-0.016 0.002,-0.017 0,-0.016 -0.002,-0.017 -0.003,-0.016 -0.006,-0.016 -0.007,-0.016 -0.01,-0.016 -0.01,-0.016 -0.013,-0.015 -0.015,-0.015 -0.016,-0.015 -0.018,-0.014 -0.02,-0.014 -0.022,-0.014 -0.021,-0.012 -0.025,-0.013 -0.025,-0.012 -0.027,-0.011 -0.029,-0.011 -0.028,-0.01 -0.03,-0.009 -0.032,-0.009 -0.032,-0.008 -0.034,-0.007 -0.033,-0.006 -0.036,-0.006 -0.034,-0.005 -0.037,-0.004 -0.036,-0.003 -0.037,-0.003 -0.037,-0.001 -0.036,-0.001 -0.037,0 -0.037,0.001 -0.037,0.002 -0.036,0.002 -0.036,0.003 -0.036,0.004 -0.036,0.005 0.238,0.306"
id="path34"
style="fill:#ffffff;stroke:none" />
<path
d="m 4.4569791,0.92331938 0.067,-0.059 0.011,-0.016 0.009,-0.015 0.009,-0.016 0.005,-0.017 0.004,-0.016 0.002,-0.016 0.001,-0.016 -0.003,-0.017 -0.003,-0.016 -0.006,-0.017 -0.007,-0.015 -0.009,-0.016 -0.011,-0.016 -0.012,-0.015 -0.016,-0.015 -0.016,-0.015 -0.017,-0.014 -0.02,-0.014 -0.021,-0.014 -0.023,-0.013 -0.023,-0.012 -0.026,-0.012 -0.027,-0.011 -0.028,-0.011 -0.029,-0.011 -0.03,-0.009 -0.032,-0.008 -0.031,-0.008 -0.033,-0.008 -0.034,-0.006 -0.035,-0.006 -0.035,-0.005 -0.036,-0.004 -0.036,-0.003 -0.037,-0.002 -0.037,-0.002 -0.037,-0.001 -0.037,0 -0.037,0.001 -0.037,0.002 -0.036,0.002 -0.036,0.003 -0.036,0.004 -0.035,0.005"
id="path36"
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 3.9329791,1.1853194 0.775,0.132 0.016,-0.017 0.013,-0.017 0.012,-0.018 0.008,-0.018 0.008,-0.018 0.004,-0.019 10e-4,-0.018 0,-0.018 -0.003,-0.019 -0.004,-0.019 -0.008,-0.018 -0.009,-0.018 -0.012,-0.017 -0.014,-0.018 -0.016,-0.017 -0.018,-0.017 -0.02,-0.016 -0.023,-0.016 -0.024,-0.015 -0.686,0.20100002"
id="path38"
style="fill:#ffffff;stroke:none" />
<path
d="m 4.6121701,1.38473 0.098479,-0.059128 0.014482,-0.018039 0.013517,-0.018039 0.01062,-0.018039 0.00869,-0.018039 0.00772,-0.018039 0.00386,-0.018039 0.00193,-0.019041 0,-0.018039 -0.00386,-0.020044 -0.00386,-0.018039 -0.00676,-0.018039 -0.00965,-0.018039 -0.011586,-0.018039 -0.013517,-0.018039 -0.015448,-0.017037 -0.018344,-0.017037 -0.021241,-0.016035 -0.020275,-0.016035 -0.024137,-0.0160349 -0.1544773,-0.0591286"
id="path40"
style="fill:none;stroke:#6c8f93;stroke-width:0.0596842;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 3.9009791,1.5363194 -0.245,0.503 0.036,0.008 0.036,0.007 0.037,0.006 0.038,0.004 0.038,0.003 0.037,0.002 0.037,0 0.038,-0.002 0.037,-0.002 0.038,-0.004 0.036,-0.005 0.038,-0.007 0.035,-0.008 0.036,-0.009 0.034,-0.011 0.034,-0.012 0.033,-0.013 0.032,-0.014 0.031,-0.016 0.03,-0.016 0.028,-0.018 0.027,-0.019 0.027,-0.02 0.025,-0.02 0.022,-0.022 0.022,-0.021 0.02,-0.024 0.018,-0.024 0.016,-0.024 0.015,-0.025 0.014,-0.026 0.01,-0.025 0.01,-0.027 0.008,-0.027 0.006,-0.026 0.003,-0.028 0.002,-0.027 0,-0.027 -0.002,-0.027 -0.004,-0.027 -0.006,-0.026 -0.008,-0.028 -0.009,-0.025 -0.71,0.149"
id="path42"
style="fill:#ffffff;stroke:none" />
<path
d="m 3.6589791,2.0403194 0.036,0.008 0.036,0.007 0.037,0.006 0.037,0.004 0.037,0.002 0.038,0.002 0.038,10e-4 0.037,-0.003 0.038,-0.002 0.037,-0.004 0.037,-0.005 0.036,-0.007 0.036,-0.009 0.036,-0.009 0.034,-0.011 0.033,-0.011 0.034,-0.014 0.032,-0.014 0.031,-0.015 0.029,-0.018 0.029,-0.017 0.027,-0.019 0.026,-0.019 0.025,-0.021 0.023,-0.022 0.021,-0.022 0.019,-0.024 0.019,-0.023 0.016,-0.024 0.015,-0.025 0.014,-0.026 0.011,-0.026 0.008,-0.026 0.008,-0.027 0.006,-0.027 0.003,-0.027 0.002,-0.027 0,-0.027 -0.002,-0.027 -0.005,-0.027 -0.005,-0.028 -0.008,-0.026 -0.01,-0.026"
id="path44"
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 0.80297907,1.2493194 -0.037,-0.34200002 -0.028,0.002 -0.026,0.002 -0.027,0.004 -0.026,0.004 -0.026,0.005 -0.026,0.006 -0.024,0.007 -0.025,0.008 -0.024,0.008 -0.023,0.009 -0.022,0.01 -0.021,0.01 -0.021,0.012 -0.02,0.012 -0.019,0.013 -0.017,0.013 -0.017,0.014 -0.015,0.014 -0.015,0.015 -0.013,0.015 -0.011,0.016 -0.011,0.016 -0.01,0.016 -0.008,0.017 -0.006,0.017 -0.006,0.016 -0.004,0.018 -0.003,0.018 -0.001,0.017 0,0.017 0.001,0.018 0.003,0.017 0.004,0.017 0.006,0.017 0.007,0.017 0.008,0.017 0.009,0.016 0.011,0.016 0.012,0.016 0.013,0.015 0.016,0.015 0.015,0.014 0.017,0.014 0.018,0.013 0.018,0.013 0.02,0.011 0.021,0.011 0.021,0.012 0.022,0.009 0.024,0.009 0.023,0.009 0.243,-0.305"
id="path46"
style="fill:#ffffff;stroke:none" />
<path
d="m 0.76697907,0.90731938 -0.027,0.002 -0.027,0.002 -0.026,0.003 -0.026,0.005 -0.025,0.004 -0.026,0.006 -0.025,0.007 -0.023,0.007 -0.023,0.009 -0.023,0.009 -0.023,0.009 -0.021,0.01 -0.02,0.011 -0.02,0.012 -0.018,0.012 -0.018,0.013 -0.017,0.013 -0.016,0.015 -0.015,0.014 -0.012,0.014 -0.012,0.016 -0.012,0.015 -0.009,0.016 -0.009,0.016 -0.007,0.017 -0.006,0.017 -0.005,0.017 -0.003,0.017 -0.002,0.017 0,0.017 0,0.017 0.003,0.017 0.003,0.018 0.004,0.016 0.007,0.017 0.006,0.016 0.009,0.017 0.009,0.016 0.012,0.015 0.012,0.016 0.014,0.014 0.014,0.014 0.016,0.015 0.016,0.013 0.018,0.013 0.019,0.012 0.019,0.011 0.021,0.012 0.021,0.01 0.022,0.009 0.023,0.009 0.024,0.009"
id="path48"
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 2.7759791,1.7874896 -1.109,0.040159 0.008,0.020594 0.009,0.019565 0.013,0.020594 0.015,0.020595 0.018,0.019565 0.021,0.018535 0.023,0.018535 0.025,0.018535 0.029,0.018535 0.031,0.017505 0.032,0.015446 0.036,0.016475 0.037,0.015446 0.039,0.015446 0.042,0.013386 0.043,0.013386 0.045,0.011327 0.047,0.012357 0.048,0.010297 0.049,0.00927 0.051,0.00927 0.052,0.00824 0.053,0.00618 0.053,0.00618 0.055,0.00515 0.055,0.00412 0.056,0.00206 0.055,0.00206 0.057,0.00103 0.055,0 0.057,-0.00103 0.055,-0.00309 0.055,-0.00309 0.055,-0.00515 0.054,-0.00515 0.053,-0.00618 0.052,-0.00721 0.052,-0.00824 0.05,-0.010297 0.049,-0.00927 0.047,-0.011327 0.046,-0.011327 0.044,-0.013386 0.042,-0.014416 0.04,-0.013386 0.039,-0.015446 0.036,-0.015446 0.034,-0.016476 0.031,-0.016476 0.03,-0.017505 0.027,-0.019565 0.025,-0.017505 0.022,-0.019565 0.018,-0.018535 -1.056,-0.1307748"
id="path50"
style="fill:#ffffff;stroke:none" />
<path
d="m 1.6669791,1.8393194 0.008,0.019 0.01,0.02 0.012,0.02 0.016,0.019 0.017,0.019 0.021,0.018 0.023,0.018 0.025,0.019 0.03,0.017 0.03,0.017 0.032,0.015 0.036,0.016 0.037,0.015 0.039,0.015 0.042,0.013 0.044,0.013 0.043,0.011 0.048,0.012 0.047,0.01 0.049,0.009 0.051,0.009 0.052,0.008 0.053,0.006 0.053,0.005 0.055,0.006 0.054,0.003 0.056,0.003 0.056,0.002 0.056,10e-4 0.056,0 0.056,-10e-4 0.055,-0.003 0.055,-0.003 0.055,-0.005 0.054,-0.005 0.054,-0.006 0.051,-0.007 0.052,-0.008 0.05,-0.009 0.048,-0.01 0.048,-0.011 0.046,-0.011 0.043,-0.013 0.043,-0.012 0.04,-0.015 0.039,-0.014 0.036,-0.016 0.034,-0.015 0.032,-0.017 0.029,-0.016 0.027,-0.018 0.024,-0.018 0.022,-0.019 0.02,-0.018"
id="path52"
style="fill:none;stroke:#6c8f93;stroke-width:0.06067566;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<rect
width="2.7800133"
height="0.61515152"
rx="0"
ry="0.28983101"
x="1.2692652"
y="0.80605406"
transform="matrix(0.999604,0.02812984,-0.02812984,0.999604,0,0)"
id="rect1892"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
d="m 2.5029776,1.9073766 0.023,-0.00895 0.020913,-0.00976 0.022119,-0.011947 0.021191,-0.0142 0.021284,-0.015682 0.02031,-0.017195 0.020402,-0.018676 0.020541,-0.020897 0.018455,-0.021702 0.018546,-0.023184 0.018685,-0.025405 0.016552,-0.02547 0.016691,-0.027691 0.014651,-0.029236 0.015717,-0.029204 0.013676,-0.03075 0.012702,-0.032263 0.012748,-0.033004 0.010665,-0.033809 0.010665,-0.033809 0.00863,-0.035354 0.00756,-0.035386 0.00653,-0.036158 0.00658,-0.0369 0.00445,-0.036963 0.00333,-0.036256 0.00236,-0.037768 0.00226,-0.036288 -9.319e-4,-0.036384 2.273e-4,-0.037833 -0.00205,-0.035676 -0.00413,-0.03648 L 2.883076,0.9720976 2.877836,0.9363258 2.871426,0.902003 2.863906,0.8683889 2.855226,0.8362236 2.845476,0.8040261 2.834621,0.7725371 2.82256,0.7432375 2.810453,0.7146786 2.797187,0.6875686 2.782854,0.6604265 2.768383,0.635506 2.751686,0.6120024 2.733784,0.590685 2.716948,0.569403 2.69886,0.5510511 2.679613,0.5341483 2.660319,0.517986 2.640887,0.5040454 2.620296,0.4915538 2.598453,0.4819918 2.577631,0.4732028"
id="path24-7"
style="fill:none;stroke:#6c8f93;stroke-width:0.107496;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<path
id="path2057-3"
d="M 1.5298421,1.2403194 H 2.3548856 V 1.303797 L 2.577141,1.1602384 2.3548856,1.0313279 v 0.064457 H 1.5298421 v 0.1445348"
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.35746e-05;stroke-opacity:0.994961" />
<path
id="path2057-3-9"
d="M 3.1225773,1.2403194 H 3.9476208 V 1.303797 L 4.1698762,1.1602384 3.9476208,1.0313279 v 0.064457 H 3.1225773 v 0.1445348"
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.35746e-05;stroke-opacity:0.994961" />
<path
id="path2057-3-5"
d="m 1.5278616,0.86827348 h 0.8319275 v 0.063478 L 2.5838989,0.78819244 2.3597891,0.65928186 v 0.064457 H 1.5278616 v 0.14453482"
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.37977e-05;stroke-opacity:0.994961" />
<path
id="path2057-3-6"
d="m 1.527029,1.6225499 h 0.8217599 v 0.063478 L 2.5701597,1.5424689 2.3487889,1.4135585 v 0.064457 H 1.5270291 v 0.1445347"
style="fill:#6c8f93;fill-opacity:1;stroke:none;stroke-width:5.34679e-05;stroke-opacity:0.994961" />
</svg>

After

Width:  |  Height:  |  Size: 30 KiB

+21 -1
View File
@@ -21,6 +21,8 @@ import re
import shlex
import textwrap
import posixpath
import socket
import errno
def force_unix_path(path):
@@ -60,7 +62,7 @@ def parse_version(version):
"""
release_type_found = False
version_infos = re.split('(\.|[a-z]+)', version)
version_infos = re.split(r'(\.|[a-z]+)', version)
version = []
for info in version_infos:
if info == '.' or len(info) == 0:
@@ -100,3 +102,21 @@ def shlex_quote(s):
return s if re.match(r'^[-_\w./]+$', s) else '"%s"' % s.replace('"', '\\"')
else:
return shlex.quote(s)
def is_ipv6_enabled() -> bool:
if not socket.has_ipv6:
return False # the socket library has no support for IPv6
try:
with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as sock:
sock.bind(("::1", 0))
return True
except OSError as e:
if e.errno in (errno.EADDRNOTAVAIL, errno.EAFNOSUPPORT):
# EADDRNOTAVAIL is the errno if IPv6 modules/drivers are loaded but disabled.
# EAFNOSUPPORT is the errno if IPv6 modules/drivers are not loaded at all.
return False
if e.errno == errno.EADDRINUSE:
return True
raise
+3 -3
View File
@@ -53,7 +53,6 @@ def list_images(emulator_type):
directory = os.path.normpath(directory)
for root, _, filenames in _os_walk(directory, recurse=recurse):
for filename in filenames:
path = os.path.join(root, filename)
if filename not in files:
if filename.endswith(".md5sum") or filename.startswith("."):
continue
@@ -73,8 +72,9 @@ def list_images(emulator_type):
with open(os.path.join(root, filename), "rb") as f:
# read the first 7 bytes of the file.
elf_header_start = f.read(7)
# valid IOS images must start with the ELF magic number, be 32-bit, big endian and have an ELF version of 1
if not elf_header_start == b'\x7fELF\x01\x02\x01' and not elf_header_start == b'\x7fELF\x01\x01\x01':
# valid IOU or IOS images must start with the ELF magic number, be 32-bit or 64-bit,
# little endian and have an ELF version of 1
if elf_header_start != b'\x7fELF\x02\x01\x01' and elf_header_start != b'\x7fELF\x01\x01\x01':
continue
images.append({
+2 -2
View File
@@ -46,7 +46,7 @@ def _get_windows_interfaces_from_registry():
hkeycard = winreg.OpenKey(hkey, network_card_id)
guid, _ = winreg.QueryValueEx(hkeycard, "ServiceName")
netcard, _ = winreg.QueryValueEx(hkeycard, "Description")
connection = r"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" + "\{}\Connection".format(guid)
connection = r"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}" + r"\{}\Connection".format(guid)
hkeycon = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, connection)
name, _ = winreg.QueryValueEx(hkeycon, "Name")
interface = r"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{}".format(guid)
@@ -92,7 +92,7 @@ def get_windows_interfaces():
interfaces = []
try:
locator = win32com.client.Dispatch("WbemScripting.SWbemLocator")
service = locator.ConnectServer(".", "root\cimv2")
service = locator.ConnectServer(".", r"root\cimv2")
network_configs = service.InstancesOf("Win32_NetworkAdapterConfiguration")
# more info on Win32_NetworkAdapter: http://msdn.microsoft.com/en-us/library/aa394216%28v=vs.85%29.aspx
for adapter in service.InstancesOf("Win32_NetworkAdapter"):
+2 -2
View File
@@ -23,8 +23,8 @@
# or negative for a release candidate or beta (after the base version
# number has been incremented)
__version__ = "2.2.47.dev1"
__version_info__ = (2, 2, 47, 99)
__version__ = "2.2.49"
__version_info__ = (2, 2, 49, 0)
if "dev" in __version__:
try:
+1 -1
View File
@@ -118,7 +118,7 @@ class WebServer:
if self._server:
self._server.close()
await self._server.wait_closed()
# await self._server.wait_closed()
if self._app:
await self._app.shutdown()
if self._handler:
-1
View File
@@ -1,4 +1,3 @@
[pytest]
asyncio_mode=auto
log_level=NOTSET
ignore=env
+7 -9
View File
@@ -1,15 +1,13 @@
jsonschema>=4.17.3,<4.18 # v4.17.3 is the last version to support Python 3.7
aiohttp>=3.8.6,<3.9; python_version == '3.7' # v3.8.6 is the last version to support Python 3.7
aiohttp>=3.9.3,<3.10; python_version > '3.7'
jsonschema>=4.23,<4.24
aiohttp>=3.9.5,<3.10
aiohttp-cors>=0.7.0,<0.8
aiofiles>=23.2.1,<23.3
Jinja2>=3.1.3,<3.2
sentry-sdk==1.40.6,<1.41
psutil==5.9.8
aiofiles>=24.1.0,<25.0
Jinja2>=3.1.4,<3.2
sentry-sdk==2.12,<2.13
psutil==6.0.0
async-timeout>=4.0.3,<4.1
distro>=1.9.0
py-cpuinfo>=9.0.0,<10.0
platformdirs>=2.4.0
importlib-resources>=1.3; python_version < '3.9'
truststore>=0.8.0; python_version >= '3.10'
setuptools>=60.8.1
truststore>=0.9.1; python_version >= '3.10'
+12 -2
View File
@@ -197,8 +197,18 @@ then
# Force hostid for IOU
dd if=/dev/zero bs=4 count=1 of=/etc/hostid
# Block iou call. The server is down
echo "127.0.0.254 xml.cisco.com" | tee --append /etc/hosts
# Block potential IOU phone home call (xml.cisco.com is not in use at this time)
log "Block IOU phone home call"
if [ "$UBUNTU_CODENAME" == "focal" ]
then
iptables -I OUTPUT -p udp --dport 53 -m string --hex-string "|03|xml|05|cisco|03|com" --algo bm -j DROP
echo iptables-persistent iptables-persistent/autosave_v4 boolean true | debconf-set-selections
echo iptables-persistent iptables-persistent/autosave_v6 boolean true | debconf-set-selections
apt-get install -y iptables-persistent
else
echo "127.0.0.254 xml.cisco.com" | tee --append /etc/hosts
fi
fi
log "Add gns3 to the kvm group"
+14 -14
View File
@@ -69,21 +69,21 @@ mkdir -p "$GNS3SERVER_DIR/gns3server/static/web-ui/"
if [ "$CUSTOM_REPO" = false ] ; then
if [ ! -d /tmp/gns3-web-ui ]; then
git clone https://github.com/GNS3/gns3-web-ui.git "$REPO_DIR"
else
cd "$REPO_DIR"
git checkout 2.2
git fetch --tags
git pull
if [[ -n "$TAG" ]]
then
echo "Switching to tag: ${TAG}"
git checkout "tags/${TAG}"
fi
cd "$CURRENT_DIR"
fi
cd "$REPO_DIR"
git checkout 2.2
git fetch --tags
git pull
if [[ -n "$TAG" ]]
then
echo "Switching to tag: ${TAG}"
git checkout "tags/${TAG}"
fi
cd "$CURRENT_DIR"
fi
echo "Current working dir $REPO_DIR"
+4 -5
View File
@@ -23,9 +23,9 @@ import subprocess
from setuptools import setup, find_packages
from setuptools.command.test import test as TestCommand
# we only support Python 3 version >= 3.7
if len(sys.argv) >= 2 and sys.argv[1] == "install" and sys.version_info < (3, 7):
raise SystemExit("Python 3.7 or higher is required")
# we only support Python 3 version >= 3.8
if len(sys.argv) >= 2 and sys.argv[1] == "install" and sys.version_info < (3, 8):
raise SystemExit("Python 3.8 or higher is required")
class PyTest(TestCommand):
@@ -67,7 +67,7 @@ setup(
include_package_data=True,
zip_safe=False,
platforms="any",
python_requires='>=3.7',
python_requires='>=3.8',
setup_requires=["setuptools>=17.1"],
classifiers=[
"Development Status :: 5 - Production/Stable",
@@ -81,7 +81,6 @@ setup(
"Operating System :: Microsoft :: Windows",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
+4 -4
View File
@@ -31,7 +31,7 @@ def nio():
@pytest.fixture
async def manager(loop):
async def manager():
m = MagicMock()
m.module_name = "builtins"
@@ -113,7 +113,7 @@ def test_json_without_ports(on_gns3vm, compute_project, manager):
}
async def test_update_port_mappings(loop, on_gns3vm, compute_project):
async def test_update_port_mappings(on_gns3vm, compute_project):
"""
We don't allow an empty interface in the middle of port list
"""
@@ -153,7 +153,7 @@ async def test_update_port_mappings(loop, on_gns3vm, compute_project):
assert cloud.ports_mapping == ports1
async def test_linux_ethernet_raw_add_nio(loop, linux_platform, compute_project, nio):
async def test_linux_ethernet_raw_add_nio(linux_platform, compute_project, nio):
ports = [
{
"interface": "eth0",
@@ -180,7 +180,7 @@ async def test_linux_ethernet_raw_add_nio(loop, linux_platform, compute_project,
])
async def test_linux_ethernet_raw_add_nio_bridge(loop, linux_platform, compute_project, nio):
async def test_linux_ethernet_raw_add_nio_bridge(linux_platform, compute_project, nio):
"""
Bridge can't be connected directly to a cloud we use a tap in the middle
"""
+3 -3
View File
@@ -25,7 +25,7 @@ from gns3server.compute.docker.docker_error import DockerError, DockerHttp404Err
@pytest.fixture
async def vm(loop):
async def vm():
vm = Docker()
vm._connected = True
@@ -238,7 +238,7 @@ async def test_install_busybox_dynamic_linked():
with pytest.raises(DockerError) as e:
dst_dir = Docker.resources_path()
await Docker.install_busybox(dst_dir)
assert str(e.value) == "No busybox executable could be found"
assert str(e.value) == "No busybox executable could be found, please install busybox (apt install busybox-static on Debian/Ubuntu) and make sure it is in your PATH"
@pytest.mark.asyncio
@@ -249,4 +249,4 @@ async def test_install_busybox_no_executables():
with pytest.raises(DockerError) as e:
dst_dir = Docker.resources_path()
await Docker.install_busybox(dst_dir)
assert str(e.value) == "No busybox executable could be found"
assert str(e.value) == "No busybox executable could be found, please install busybox (apt install busybox-static on Debian/Ubuntu) and make sure it is in your PATH"
+5 -2
View File
@@ -31,8 +31,11 @@ from gns3server.compute.docker import Docker
from unittest.mock import patch, MagicMock, call
pytestmark = pytest.mark.skipif(sys.platform.startswith("win"), reason="Not supported on Windows")
@pytest.fixture()
async def manager(loop, port_manager):
async def manager(port_manager):
m = Docker.instance()
m.port_manager = port_manager
@@ -40,7 +43,7 @@ async def manager(loop, port_manager):
@pytest.fixture(scope="function")
async def vm(loop, compute_project, manager):
async def vm(compute_project, manager):
vm = DockerVM("test", str(uuid.uuid4()), compute_project, manager, "ubuntu:latest")
vm._cid = "e90e34656842"
@@ -29,7 +29,7 @@ from tests.utils import asyncio_patch, AsyncioMagicMock
@pytest.fixture
async def manager(loop, port_manager):
async def manager(port_manager):
m = Dynamips.instance()
m.port_manager = port_manager
@@ -26,7 +26,7 @@ from gns3server.config import Config
@pytest.fixture
async def manager(loop, port_manager):
async def manager(port_manager):
m = Dynamips.instance()
m.port_manager = port_manager
+2 -2
View File
@@ -37,7 +37,7 @@ if not sys.platform.startswith("win"):
@pytest.fixture
async def manager(loop, port_manager):
async def manager(port_manager):
m = IOU.instance()
m.port_manager = port_manager
@@ -45,7 +45,7 @@ async def manager(loop, port_manager):
@pytest.fixture(scope="function")
async def vm(loop, compute_project, manager, tmpdir, fake_iou_bin, iourc_file):
async def vm(compute_project, manager, tmpdir, fake_iou_bin, iourc_file):
vm = IOUVM("test", str(uuid.uuid4()), compute_project, manager, application_id=1)
config = manager.config.get_section_config("IOU")
+1 -1
View File
@@ -66,7 +66,7 @@ def test_invalid_empty_file(tmpdir):
@pytest.mark.skipif(qemu_img() is None, reason="qemu-img is not available")
async def test_rebase(loop, tmpdir):
async def test_rebase(tmpdir):
shutil.copy("tests/resources/empty8G.qcow2", str(tmpdir / "empty16G.qcow2"))
shutil.copy("tests/resources/linked.qcow2", str(tmpdir / "linked.qcow2"))
+1
View File
@@ -195,6 +195,7 @@ async def test_create_image_with_not_supported_characters_by_filesystem(tmpdir,
# patching os.makedirs is necessary as it depends on already mocked os.path.exists
with asyncio_patch("asyncio.create_subprocess_exec", return_value=MagicMock()) as process, \
patch("gns3server.compute.qemu.Qemu._init_config_disk", return_value=MagicMock()), \
patch("gns3server.compute.qemu.Qemu.get_images_directory", return_value=str(tmpdir)), \
patch("os.path.exists", side_effect=UnicodeEncodeError('error', u"", 1, 2, 'Emulated Unicode Err')),\
patch("os.makedirs"):
+9 -1
View File
@@ -34,7 +34,7 @@ from gns3server.compute.notification_manager import NotificationManager
@pytest.fixture
async def manager(loop, port_manager):
async def manager(port_manager):
m = Qemu.instance()
m.port_manager = port_manager
@@ -774,6 +774,14 @@ async def test_build_command_with_invalid_options(vm):
await vm._build_command()
@pytest.mark.skipif(sys.platform.startswith("win"), reason="Not supported on Windows")
async def test_build_command_with_forbidden_options(vm):
vm.options = "-blockdev"
with pytest.raises(QemuError):
await vm._build_command()
def test_hda_disk_image(vm, images_dir):
open(os.path.join(images_dir, "test1"), "w+").close()
+1 -1
View File
@@ -29,7 +29,7 @@ from gns3server.compute.nios.nio_udp import NIOUDP
@pytest.fixture(scope="function")
async def manager(loop, port_manager):
async def manager(port_manager):
m = VPCS.instance()
m.port_manager = port_manager
+2 -2
View File
@@ -29,7 +29,7 @@ from gns3server.utils import force_unix_path
@pytest.fixture(scope="function")
async def vpcs(loop, port_manager):
async def vpcs(port_manager):
VPCS._instance = None
vpcs = VPCS.instance()
@@ -38,7 +38,7 @@ async def vpcs(loop, port_manager):
@pytest.fixture(scope="function")
async def qemu(loop, port_manager):
async def qemu(port_manager):
Qemu._instance = None
Qemu._init_config_disk = MagicMock() # do not create the config.img image
+1 -1
View File
@@ -33,7 +33,7 @@ from gns3server.config import Config
@pytest.fixture(scope="function")
async def manager(loop, port_manager):
async def manager(port_manager):
m = VPCS.instance()
m.port_manager = port_manager
+1 -1
View File
@@ -28,7 +28,7 @@ from gns3server.compute.notification_manager import NotificationManager
@pytest.fixture
async def manager(loop, port_manager):
async def manager(port_manager):
m = TraceNG.instance()
m.port_manager = port_manager
@@ -29,7 +29,7 @@ from tests.utils import asyncio_patch
@pytest.fixture
async def manager(loop, port_manager):
async def manager(port_manager):
m = VirtualBox.instance()
m.port_manager = port_manager
@@ -25,7 +25,7 @@ from gns3server.compute.virtualbox import VirtualBox
@pytest.fixture
async def manager(loop, port_manager):
async def manager(port_manager):
m = VirtualBox.instance()
m.port_manager = port_manager
Loaded 100 of 118 files, more files were not shown because too many files have changed in this diff. Show more