ocpsvg 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ocpsvg-0.2.0/.github/workflows/codecov.yaml +33 -0
- ocpsvg-0.2.0/.github/workflows/publish.yaml +75 -0
- ocpsvg-0.2.0/.github/workflows/tests.yaml +40 -0
- ocpsvg-0.2.0/.gitignore +7 -0
- ocpsvg-0.2.0/PKG-INFO +17 -0
- ocpsvg-0.2.0/examples/svg-logo-hlr1.svg +177 -0
- ocpsvg-0.2.0/examples/svg-logo-hlr2.svg +440 -0
- ocpsvg-0.2.0/examples/svg_tiger.py +53 -0
- ocpsvg-0.2.0/ocpsvg/__init__.py +16 -0
- ocpsvg-0.2.0/ocpsvg/hlr.py +363 -0
- ocpsvg-0.2.0/ocpsvg/ocp.py +473 -0
- ocpsvg-0.2.0/ocpsvg/svg.py +759 -0
- ocpsvg-0.2.0/ocpsvg.egg-info/PKG-INFO +17 -0
- ocpsvg-0.2.0/ocpsvg.egg-info/SOURCES.txt +24 -0
- ocpsvg-0.2.0/ocpsvg.egg-info/dependency_links.txt +1 -0
- ocpsvg-0.2.0/ocpsvg.egg-info/requires.txt +6 -0
- ocpsvg-0.2.0/ocpsvg.egg-info/top_level.txt +1 -0
- ocpsvg-0.2.0/pyproject.toml +29 -0
- ocpsvg-0.2.0/readme-pypi.md +6 -0
- ocpsvg-0.2.0/readme.md +9 -0
- ocpsvg-0.2.0/setup.cfg +4 -0
- ocpsvg-0.2.0/tests/__init__.py +0 -0
- ocpsvg-0.2.0/tests/ocp.py +24 -0
- ocpsvg-0.2.0/tests/test_hlr.py +157 -0
- ocpsvg-0.2.0/tests/test_ocp.py +188 -0
- ocpsvg-0.2.0/tests/test_svg.py +703 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: codecov
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
- push
|
|
5
|
+
- pull_request
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
codecov:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v3
|
|
12
|
+
- name: Set up Python 3.10
|
|
13
|
+
uses: actions/setup-python@v4
|
|
14
|
+
with:
|
|
15
|
+
python-version: '3.10'
|
|
16
|
+
- name: Install dependencies
|
|
17
|
+
run: |
|
|
18
|
+
python -m pip install --upgrade pip
|
|
19
|
+
pip install ruff pytest coverage
|
|
20
|
+
pip install .
|
|
21
|
+
- name: Lint with ruff
|
|
22
|
+
run: |
|
|
23
|
+
# stop the build if there are Python syntax errors or undefined names
|
|
24
|
+
ruff --output-format=github --select=E9,F63,F7,F82 --target-version=py37 .
|
|
25
|
+
# default set of ruff rules with GitHub Annotations
|
|
26
|
+
ruff --output-format=github --target-version=py37 .
|
|
27
|
+
- name: Test with pytest
|
|
28
|
+
run: |
|
|
29
|
+
coverage run -m pytest
|
|
30
|
+
- name: Upload coverage reports to Codecov
|
|
31
|
+
uses: codecov/codecov-action@v3
|
|
32
|
+
env:
|
|
33
|
+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
|
|
2
|
+
|
|
3
|
+
on: push
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
name: Build distribution 📦
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
- name: Set up Python
|
|
13
|
+
uses: actions/setup-python@v4
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.x"
|
|
16
|
+
- name: Install pypa/build
|
|
17
|
+
run: >-
|
|
18
|
+
python3 -m
|
|
19
|
+
pip install
|
|
20
|
+
build
|
|
21
|
+
--user
|
|
22
|
+
- name: Build a binary wheel and a source tarball
|
|
23
|
+
run: python3 -m build
|
|
24
|
+
- name: Store the distribution packages
|
|
25
|
+
uses: actions/upload-artifact@v3
|
|
26
|
+
with:
|
|
27
|
+
name: python-package-distributions
|
|
28
|
+
path: dist/
|
|
29
|
+
|
|
30
|
+
publish-to-pypi:
|
|
31
|
+
name: >-
|
|
32
|
+
Publish Python 🐍 distribution 📦 to PyPI
|
|
33
|
+
if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
|
|
34
|
+
needs:
|
|
35
|
+
- build
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
environment:
|
|
38
|
+
name: pypi
|
|
39
|
+
url: https://pypi.org/p/ocpsvg
|
|
40
|
+
permissions:
|
|
41
|
+
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- name: Download all the dists
|
|
45
|
+
uses: actions/download-artifact@v3
|
|
46
|
+
with:
|
|
47
|
+
name: python-package-distributions
|
|
48
|
+
path: dist/
|
|
49
|
+
- name: Publish distribution 📦 to PyPI
|
|
50
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
51
|
+
|
|
52
|
+
publish-to-testpypi:
|
|
53
|
+
name: Publish Python 🐍 distribution 📦 to TestPyPI
|
|
54
|
+
needs:
|
|
55
|
+
- build
|
|
56
|
+
runs-on: ubuntu-latest
|
|
57
|
+
|
|
58
|
+
environment:
|
|
59
|
+
name: testpypi
|
|
60
|
+
url: https://test.pypi.org/p/ocpsvg
|
|
61
|
+
|
|
62
|
+
permissions:
|
|
63
|
+
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
64
|
+
|
|
65
|
+
steps:
|
|
66
|
+
- name: Download all the dists
|
|
67
|
+
uses: actions/download-artifact@v3
|
|
68
|
+
with:
|
|
69
|
+
name: python-package-distributions
|
|
70
|
+
path: dist/
|
|
71
|
+
- name: Publish distribution 📦 to TestPyPI
|
|
72
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
73
|
+
with:
|
|
74
|
+
repository-url: https://test.pypi.org/legacy/
|
|
75
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
- push
|
|
5
|
+
- pull_request
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
tests:
|
|
9
|
+
strategy:
|
|
10
|
+
fail-fast: false
|
|
11
|
+
matrix:
|
|
12
|
+
python-version:
|
|
13
|
+
- "3.9"
|
|
14
|
+
- "3.10"
|
|
15
|
+
os:
|
|
16
|
+
- macos-latest
|
|
17
|
+
- ubuntu-latest
|
|
18
|
+
- windows-latest
|
|
19
|
+
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v3
|
|
23
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
24
|
+
uses: actions/setup-python@v4
|
|
25
|
+
with:
|
|
26
|
+
python-version: ${{ matrix.python-version }}
|
|
27
|
+
- name: Install dependencies
|
|
28
|
+
run: |
|
|
29
|
+
python -m pip install --upgrade pip
|
|
30
|
+
pip install ruff pytest
|
|
31
|
+
pip install .
|
|
32
|
+
- name: Lint with ruff
|
|
33
|
+
run: |
|
|
34
|
+
# stop the build if there are Python syntax errors or undefined names
|
|
35
|
+
ruff --output-format=github --select=E9,F63,F7,F82 --target-version=py37 .
|
|
36
|
+
# default set of ruff rules with GitHub Annotations
|
|
37
|
+
ruff --output-format=github --target-version=py37 .
|
|
38
|
+
- name: Test with pytest
|
|
39
|
+
run: |
|
|
40
|
+
pytest
|
ocpsvg-0.2.0/.gitignore
ADDED
ocpsvg-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: ocpsvg
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Requires-Python: >=3.9
|
|
5
|
+
Description-Content-Type: text/markdown
|
|
6
|
+
Requires-Dist: cadquery-ocp>=7.7.0
|
|
7
|
+
Requires-Dist: svgpathtools<2,>=1.5.1
|
|
8
|
+
Requires-Dist: svgelements<2,>=1.9.1
|
|
9
|
+
Provides-Extra: dev
|
|
10
|
+
Requires-Dist: pytest; extra == "dev"
|
|
11
|
+
|
|
12
|
+
# OCPSVG
|
|
13
|
+
|
|
14
|
+
- works at the [`OCP`](https://github.com/CadQuery/OCP) level
|
|
15
|
+
- uses [`svgpathtools`](https://github.com/mathandy/svgpathtools) to convert SVG path strings to and from `TopoDS_Edge`, `TopoDS_Wire`, and `TopoDS_Face` objects
|
|
16
|
+
- uses [`svgelements`](https://github.com/meerk40t/svgelements) to import `TopoDS_Wire` and `TopoDS_Face` objects from an SVG document
|
|
17
|
+
- can be used to add SVG functionality (import and export) to higher level API
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-36.16 -36.1147 400 399.91" width="400">
|
|
3
|
+
<style>path {
|
|
4
|
+
fill: none;
|
|
5
|
+
stroke: #1a1a1a;
|
|
6
|
+
stroke-width: 1;
|
|
7
|
+
stroke-linecap: round;
|
|
8
|
+
stroke-linejoin: round;
|
|
9
|
+
vector-effect: non-scaling-stroke;
|
|
10
|
+
}
|
|
11
|
+
.undefined, .isoline, .sewn, .smooth {
|
|
12
|
+
stroke-width: 0.75;
|
|
13
|
+
}
|
|
14
|
+
.hidden {
|
|
15
|
+
stroke: #666666;
|
|
16
|
+
stroke-dasharray: 1.5 2.5;
|
|
17
|
+
}</style>
|
|
18
|
+
<g transform="scale(1.28 -1.28) translate(0 -256)">
|
|
19
|
+
<path id="e0" d="M3.14065,128.035 A36.4731,36.4731,0,0,1,39.6153,91.5801" class="s0 sharp hidden" />
|
|
20
|
+
<path id="e1" d="M39.6153,91.5801 A36.4731,36.4731,0,0,1,40.1094,91.6153" class="s0 sharp hidden" />
|
|
21
|
+
<path id="e2" d="M40.1094,91.6153 A36.4731,36.4731,0,0,1,39.7266,91.2833" class="s0 sharp hidden" />
|
|
22
|
+
<path id="e3" d="M39.7266,91.2833 A36.4731,36.4731,0,0,1,39.7266,39.7032" class="s0 sharp hidden" />
|
|
23
|
+
<path id="e4" d="M39.7266,39.7032 A36.4731,36.4731,0,0,1,91.3067,39.7032" class="s0 sharp hidden" />
|
|
24
|
+
<path id="e5" d="M91.3067,39.7032 A36.4731,36.4731,0,0,1,91.6309,40.043" class="s0 sharp hidden" />
|
|
25
|
+
<path id="e6" d="M91.6309,40.043 A36.4731,36.4731,0,0,1,91.5977,39.5801" class="s0 sharp hidden" />
|
|
26
|
+
<path id="e7" d="M91.5977,39.5802 A36.4731,36.4731,0,0,1,128.07,3.10554" class="s0 sharp hidden" />
|
|
27
|
+
<path id="e8" d="M128.07,3.10554 A36.4731,36.4731,0,0,1,164.543,39.5801" class="s0 sharp hidden" />
|
|
28
|
+
<path id="e9" d="M164.543,39.5801 A36.4731,36.4731,0,0,1,164.531,40.0411" class="s0 sharp hidden" />
|
|
29
|
+
<path id="e10" d="M164.531,40.0411 A36.4731,36.4731,0,0,1,164.834,39.6915" class="s0 sharp hidden" />
|
|
30
|
+
<path id="e11" d="M164.834,39.6915 A36.4731,36.4731,0,0,1,216.416,39.6915" class="s0 sharp hidden" />
|
|
31
|
+
<path id="e12" d="M216.416,39.6915 A36.4731,36.4731,0,0,1,216.416,91.2716" class="s0 sharp hidden" />
|
|
32
|
+
<path id="e13" d="M216.416,91.2716 A36.4731,36.4731,0,0,1,216.018,91.6173" class="s0 sharp hidden" />
|
|
33
|
+
<path id="e14" d="M216.018,91.6173 A36.4731,36.4731,0,0,1,216.527,91.5802" class="s0 sharp hidden" />
|
|
34
|
+
<path id="e15" d="M216.527,91.5802 A36.4731,36.4731,0,0,1,253,128.035" class="s0 sharp hidden" />
|
|
35
|
+
<path id="e16" d="M128.07,252.965 A36.4731,36.4731,0,0,1,91.5977,216.492" class="s0 sharp" />
|
|
36
|
+
<path id="e17" d="M91.5977,216.492 A36.4731,36.4731,0,0,1,91.6289,216.041" class="s0 sharp" />
|
|
37
|
+
<path id="e18" d="M91.6289,216.041 A36.4731,36.4731,0,0,1,91.3203,216.367" class="s0 sharp" />
|
|
38
|
+
<path id="e19" d="M91.3203,216.367 A36.4731,36.4731,0,0,1,39.7383,216.367" class="s0 sharp" />
|
|
39
|
+
<path id="e20" d="M39.7383,216.367 A36.4731,36.4731,0,0,1,39.7383,164.787" class="s0 sharp" />
|
|
40
|
+
<path id="e21" d="M39.7383,164.787 A36.4731,36.4731,0,0,1,40.0508,164.516" class="s0 sharp" />
|
|
41
|
+
<path id="e22" d="M40.0508,164.516 A36.4731,36.4731,0,0,1,39.6153,164.527" class="s0 sharp" />
|
|
42
|
+
<path id="e23" d="M39.6153,164.527 A36.4731,36.4731,0,0,1,3.14065,128.053" class="s0 sharp" />
|
|
43
|
+
<path id="e24" d="M3.14065,128.053 A36.4731,36.4731,0,0,1,3.14065,128.035" class="s0 sharp" />
|
|
44
|
+
<path id="e25" d="M253,128.035 A36.4731,36.4731,0,0,1,253,128.053" class="s0 sharp" />
|
|
45
|
+
<path id="e26" d="M253,128.053 A36.4731,36.4731,0,0,1,216.527,164.527" class="s0 sharp" />
|
|
46
|
+
<path id="e27" d="M216.527,164.527 A36.4731,36.4731,0,0,1,216.049,164.494" class="s0 sharp" />
|
|
47
|
+
<path id="e28" d="M216.049,164.494 A36.4731,36.4731,0,0,1,216.402,164.799" class="s0 sharp" />
|
|
48
|
+
<path id="e29" d="M216.402,164.799 A36.4731,36.4731,0,0,1,216.402,216.381" class="s0 sharp" />
|
|
49
|
+
<path id="e30" d="M216.402,216.381 A36.4731,36.4731,0,0,1,164.822,216.381" class="s0 sharp" />
|
|
50
|
+
<path id="e31" d="M164.822,216.381 A36.4731,36.4731,0,0,1,164.51,216.02" class="s0 sharp" />
|
|
51
|
+
<path id="e32" d="M164.51,216.02 A36.4731,36.4731,0,0,1,164.543,216.492" class="s0 sharp" />
|
|
52
|
+
<path id="e33" d="M164.543,216.492 A36.4731,36.4731,0,0,1,128.07,252.965" class="s0 sharp" />
|
|
53
|
+
<path id="e34" d="M128.07,252.965 L128.07,252.965" class="s0 sharp" />
|
|
54
|
+
<path id="e35" d="M19.8125,128.035 A19.803,19.803,0,0,1,39.6152,108.25" class="s1 sharp hidden" />
|
|
55
|
+
<path id="e36" d="M39.6152,108.25 A19.803,19.803,0,0,1,53.5449,114.051" class="s1 sharp hidden" />
|
|
56
|
+
<path id="e37" d="M53.5449,114.051 L94.1953,114.051" class="s1 sharp hidden" />
|
|
57
|
+
<path id="e38" d="M94.1953,114.051 L65.4355,85.291" class="s1 sharp hidden" />
|
|
58
|
+
<path id="e39" d="M65.4355,85.291 A19.803,19.803,0,0,1,45.7129,65.4941" class="s1 sharp hidden" />
|
|
59
|
+
<path id="e40" d="M45.7129,65.4941 A19.803,19.803,0,0,1,65.5156,45.6914" class="s1 sharp hidden" />
|
|
60
|
+
<path id="e41" d="M65.5156,45.6914 A19.803,19.803,0,0,1,85.3203,65.4941" class="s1 sharp hidden" />
|
|
61
|
+
<path id="e42" d="M85.3203,65.4941 A19.803,19.803,0,0,1,85.3185,65.5683" class="s1 sharp hidden" />
|
|
62
|
+
<path id="e43" d="M85.3185,65.5683 L113.998,94.248" class="s1 sharp hidden" />
|
|
63
|
+
<path id="e44" d="M113.998,94.248 L113.998,53.4394" class="s1 sharp hidden" />
|
|
64
|
+
<path id="e45" d="M113.998,53.4394 A19.803,19.803,0,0,1,108.268,39.5801" class="s1 sharp hidden" />
|
|
65
|
+
<path id="e46" d="M108.268,39.5801 A19.803,19.803,0,0,1,128.07,19.7754" class="s1 sharp hidden" />
|
|
66
|
+
<path id="e47" d="M128.07,19.7754 A19.803,19.803,0,0,1,147.873,39.5801" class="s1 sharp hidden" />
|
|
67
|
+
<path id="e48" d="M147.873,39.5801 A19.803,19.803,0,0,1,142.002,53.6504" class="s1 sharp hidden" />
|
|
68
|
+
<path id="e49" d="M142.002,53.6504 L142.002,94.248" class="s1 sharp hidden" />
|
|
69
|
+
<path id="e50" d="M142.002,94.248 L170.826,65.4238" class="s1 sharp hidden" />
|
|
70
|
+
<path id="e51" d="M170.826,65.4238 A19.803,19.803,0,0,1,190.625,45.6777" class="s1 sharp hidden" />
|
|
71
|
+
<path id="e52" d="M190.625,45.6777 A19.803,19.803,0,0,1,210.428,65.4804" class="s1 sharp hidden" />
|
|
72
|
+
<path id="e53" d="M210.428,65.4805 A19.803,19.803,0,0,1,190.625,85.2832" class="s1 sharp hidden" />
|
|
73
|
+
<path id="e54" d="M190.625,85.2832 A19.803,19.803,0,0,1,190.576,85.2792" class="s1 sharp hidden" />
|
|
74
|
+
<path id="e55" d="M190.576,85.2792 L161.805,114.051" class="s1 sharp hidden" />
|
|
75
|
+
<path id="e56" d="M161.805,114.051 L202.596,114.051" class="s1 sharp hidden" />
|
|
76
|
+
<path id="e57" d="M202.596,114.051 A19.803,19.803,0,0,1,216.527,108.25" class="s1 sharp hidden" />
|
|
77
|
+
<path id="e58" d="M216.527,108.25 A19.803,19.803,0,0,1,236.33,128.035" class="s1 sharp hidden" />
|
|
78
|
+
<path id="e59" d="M128.07,236.295 A19.803,19.803,0,0,1,108.268,216.492" class="s1 sharp" />
|
|
79
|
+
<path id="e60" d="M108.268,216.492 A19.803,19.803,0,0,1,113.998,202.631" class="s1 sharp" />
|
|
80
|
+
<path id="e61" d="M113.998,202.631 L113.998,161.859" class="s1 sharp" />
|
|
81
|
+
<path id="e62" d="M113.998,161.859 L85.3281,190.529" class="s1 sharp" />
|
|
82
|
+
<path id="e63" d="M85.3281,190.529 A19.803,19.803,0,0,1,85.3316,190.576" class="s1 sharp" />
|
|
83
|
+
<path id="e64" d="M85.3316,190.576 A19.803,19.803,0,0,1,65.5293,210.381" class="s1 sharp" />
|
|
84
|
+
<path id="e65" d="M65.5293,210.381 A19.803,19.803,0,0,1,45.7266,190.576" class="s1 sharp" />
|
|
85
|
+
<path id="e66" d="M45.7266,190.576 A19.803,19.803,0,0,1,65.4746,170.777" class="s1 sharp" />
|
|
86
|
+
<path id="e67" d="M65.4746,170.777 L94.1953,142.057" class="s1 sharp" />
|
|
87
|
+
<path id="e68" d="M94.1953,142.057 L53.6172,142.057" class="s1 sharp" />
|
|
88
|
+
<path id="e69" d="M53.6172,142.057 A19.803,19.803,0,0,1,39.6152,147.857" class="s1 sharp" />
|
|
89
|
+
<path id="e70" d="M39.6152,147.857 A19.803,19.803,0,0,1,19.8125,128.053" class="s1 sharp" />
|
|
90
|
+
<path id="e71" d="M19.8125,128.053 A19.803,19.803,0,0,1,19.8125,128.035" class="s1 sharp" />
|
|
91
|
+
<path id="e72" d="M236.33,128.035 A19.803,19.803,0,0,1,236.33,128.053" class="s1 sharp" />
|
|
92
|
+
<path id="e73" d="M236.33,128.053 A19.803,19.803,0,0,1,216.527,147.857" class="s1 sharp" />
|
|
93
|
+
<path id="e74" d="M216.527,147.857 A19.803,19.803,0,0,1,202.596,142.057" class="s1 sharp" />
|
|
94
|
+
<path id="e75" d="M202.596,142.057 L161.805,142.057" class="s1 sharp" />
|
|
95
|
+
<path id="e76" d="M161.805,142.057 L190.541,170.793" class="s1 sharp" />
|
|
96
|
+
<path id="e77" d="M190.541,170.793 A19.803,19.803,0,0,1,190.611,170.787" class="s1 sharp" />
|
|
97
|
+
<path id="e78" d="M190.611,170.787 A19.803,19.803,0,0,1,210.416,190.59" class="s1 sharp" />
|
|
98
|
+
<path id="e79" d="M210.416,190.59 A19.803,19.803,0,0,1,190.611,210.393" class="s1 sharp" />
|
|
99
|
+
<path id="e80" d="M190.611,210.393 A19.803,19.803,0,0,1,170.815,190.672" class="s1 sharp" />
|
|
100
|
+
<path id="e81" d="M170.815,190.672 L142.002,161.859" class="s1 sharp" />
|
|
101
|
+
<path id="e82" d="M142.002,161.859 L142.002,202.488" class="s1 sharp" />
|
|
102
|
+
<path id="e83" d="M142.002,202.488 A19.803,19.803,0,0,1,147.873,216.492" class="s1 sharp" />
|
|
103
|
+
<path id="e84" d="M147.873,216.492 A19.803,19.803,0,0,1,128.07,236.295" class="s1 sharp" />
|
|
104
|
+
<path id="e85" d="M3,128.035 L253,128.035" class="s2 sharp" />
|
|
105
|
+
<path id="e86" d="M253,128.035 L253,39.6961" class="s2 sharp" />
|
|
106
|
+
<path id="e87" d="M216.339,3.03537 L39.6608,3.03537" class="s2 sharp" />
|
|
107
|
+
<path id="e88" d="M3,39.6961 L3,128.035" class="s2 sharp" />
|
|
108
|
+
<path id="e89" d="M253,39.6961 C253,18.9364,237.099,3.03537,216.339,3.03537" class="s2 sharp" />
|
|
109
|
+
<path id="e90" d="M39.6608,3.03537 C18.9011,3.03537,3,18.9364,3,39.6961" class="s2 sharp" />
|
|
110
|
+
<path id="e91" d="M63.1992,57.7227 L63.1992,57.7127" class="s3 sharp" />
|
|
111
|
+
<path id="e92" d="M72.6934,53.781 L72.7012,53.781" class="s3 sharp" />
|
|
112
|
+
<path id="e93" d="M49.7851,44.3045 L30.8066,44.3045" class="s3 sharp" />
|
|
113
|
+
<path id="e94" d="M53.7148,80.6385 L53.707,80.6385" class="s3 sharp" />
|
|
114
|
+
<path id="e95" d="M76.625,90.115 L95.6016,90.115" class="s3 sharp" />
|
|
115
|
+
<path id="e96" d="M63.1992,122.508 L63.1992,122.508" class="s3 sharp" />
|
|
116
|
+
<path id="e97" d="M63.1992,122.508 C45.3176,122.508,30.8066,108.006,30.8066,90.1152" class="s3 sharp" />
|
|
117
|
+
<path id="e98" d="M30.8066,90.1152 C30.8066,81.1736,34.4368,73.077,40.3008,67.2148" class="s3 sharp" />
|
|
118
|
+
<path id="e99" d="M40.3008,67.2148 C46.163,61.3509,54.5243,59.0531,63.1992,57.7227" class="s3 sharp" />
|
|
119
|
+
<path id="e100" d="M63.1992,57.7127 C66.777,57.0466,70.264,56.2104,72.6934,53.781" class="s3 sharp" />
|
|
120
|
+
<path id="e101" d="M72.7012,53.781 C75.1217,51.3517,76.625,48.0059,76.625,44.3045" class="s3 sharp" />
|
|
121
|
+
<path id="e102" d="M76.625,44.3045 C76.625,36.8946,70.6109,30.8806,63.1992,30.8806" class="s3 sharp" />
|
|
122
|
+
<path id="e103" d="M63.1992,30.8806 C55.7893,30.8806,49.7851,36.8946,49.7851,44.3045" class="s3 sharp" />
|
|
123
|
+
<path id="e104" d="M30.8066,44.3045 C30.8066,26.414,45.3176,11.9041,63.1992,11.9041" class="s3 sharp" />
|
|
124
|
+
<path id="e105" d="M63.1992,11.9041 C81.0897,11.9041,95.6016,26.414,95.6016,44.3045" class="s3 sharp" />
|
|
125
|
+
<path id="e106" d="M95.6016,44.3045 C95.6016,53.2462,91.9714,61.3429,86.1074,67.2068" class="s3 sharp" />
|
|
126
|
+
<path id="e107" d="M86.1074,67.2068 C80.2452,73.069,72.1497,75.766,63.1992,76.697" class="s3 sharp" />
|
|
127
|
+
<path id="e108" d="M63.1992,76.697 C58.1674,77.4956,56.1442,78.2003,53.7148,80.6385" class="s3 sharp" />
|
|
128
|
+
<path id="e109" d="M53.707,80.6385 C51.2883,83.0589,49.7852,86.4136,49.7852,90.115" class="s3 sharp" />
|
|
129
|
+
<path id="e110" d="M49.7852,90.115 C49.7852,97.5249,55.7893,103.529,63.1992,103.529" class="s3 sharp" />
|
|
130
|
+
<path id="e111" d="M63.1992,103.529 C70.6109,103.529,76.625,97.5249,76.625,90.115" class="s3 sharp" />
|
|
131
|
+
<path id="e112" d="M95.6016,90.115 C95.6016,108.005,81.0897,122.508,63.1992,122.508" class="s3 sharp" />
|
|
132
|
+
<path id="e113" d="M95.6016,122.508 L118.498,11.9043" class="s4 sharp" />
|
|
133
|
+
<path id="e114" d="M118.498,11.9043 L137.473,11.9043" class="s4 sharp" />
|
|
134
|
+
<path id="e115" d="M137.473,11.9043 L160.389,122.508" class="s4 sharp" />
|
|
135
|
+
<path id="e116" d="M160.389,122.508 L141.414,122.508" class="s4 sharp" />
|
|
136
|
+
<path id="e117" d="M141.414,122.508 L128.004,57.7305" class="s4 sharp" />
|
|
137
|
+
<path id="e118" d="M128.004,57.7305 L114.576,122.508" class="s4 sharp" />
|
|
138
|
+
<path id="e119" d="M114.576,122.508 L95.6016,122.508" class="s4 sharp" />
|
|
139
|
+
<path id="e120" d="M160.391,90.1132 L160.399,90.1132" class="s5 sharp" />
|
|
140
|
+
<path id="e121" d="M160.399,90.1132 L160.399,44.3046" class="s5 sharp" />
|
|
141
|
+
<path id="e122" d="M225.194,44.3046 L225.184,44.3046" class="s5 sharp" />
|
|
142
|
+
<path id="e123" d="M225.184,44.3046 L225.184,76.6972" class="s5 sharp" />
|
|
143
|
+
<path id="e124" d="M225.184,76.6972 L192.791,76.6972" class="s5 sharp" />
|
|
144
|
+
<path id="e125" d="M192.791,76.6972 L192.791,57.7109" class="s5 sharp" />
|
|
145
|
+
<path id="e126" d="M192.791,57.7109 L206.207,57.7109" class="s5 sharp" />
|
|
146
|
+
<path id="e127" d="M206.207,57.7109 L206.207,44.3046" class="s5 sharp" />
|
|
147
|
+
<path id="e128" d="M206.207,44.3046 L206.207,44.2966" class="s5 sharp" />
|
|
148
|
+
<path id="e129" d="M179.375,44.3045 L179.375,90.113" class="s5 sharp" />
|
|
149
|
+
<path id="e130" d="M206.207,90.113 L225.184,90.113" class="s5 sharp" />
|
|
150
|
+
<path id="e131" d="M192.791,122.506 L192.791,122.506" class="s5 sharp" />
|
|
151
|
+
<path id="e132" d="M192.791,122.506 C174.899,122.506,160.391,108.004,160.391,90.1132" class="s5 sharp" />
|
|
152
|
+
<path id="e133" d="M160.399,44.3046 C160.399,26.4124,174.899,11.9023,192.791,11.9023" class="s5 sharp" />
|
|
153
|
+
<path id="e134" d="M192.791,11.9023 C210.682,11.9023,225.194,26.4124,225.194,44.3046" class="s5 sharp" />
|
|
154
|
+
<path id="e135" d="M206.207,44.2966 C206.198,36.8938,200.192,30.8885,192.791,30.8885" class="s5 sharp" />
|
|
155
|
+
<path id="e136" d="M192.791,30.8885 C185.379,30.8885,179.375,36.8928,179.375,44.3045" class="s5 sharp" />
|
|
156
|
+
<path id="e137" d="M179.375,90.113 C179.375,97.5158,185.379,103.529,192.791,103.529" class="s5 sharp" />
|
|
157
|
+
<path id="e138" d="M192.791,103.529 C200.192,103.529,206.207,97.5158,206.207,90.113" class="s5 sharp" />
|
|
158
|
+
<path id="e139" d="M225.184,90.113 C225.184,108.003,210.673,122.506,192.791,122.506" class="s5 sharp" />
|
|
159
|
+
</g>
|
|
160
|
+
<style>@media (prefers-color-scheme: dark){
|
|
161
|
+
path {
|
|
162
|
+
fill: none;
|
|
163
|
+
stroke: #e5e5e5;
|
|
164
|
+
stroke-width: 1;
|
|
165
|
+
stroke-linecap: round;
|
|
166
|
+
stroke-linejoin: round;
|
|
167
|
+
vector-effect: non-scaling-stroke;
|
|
168
|
+
}
|
|
169
|
+
.undefined, .isoline, .sewn, .smooth {
|
|
170
|
+
stroke-width: 0.75;
|
|
171
|
+
}
|
|
172
|
+
.hidden {
|
|
173
|
+
stroke: #999999;
|
|
174
|
+
stroke-dasharray: 1.5 2.5;
|
|
175
|
+
}
|
|
176
|
+
}</style>
|
|
177
|
+
</svg>
|