pytex-preprocessor 0.1.0__py3-none-any.whl

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.
Files changed (119) hide show
  1. pytex/__init__.py +87 -0
  2. pytex/commands/__init__.py +51 -0
  3. pytex/commands/biblatex.py +98 -0
  4. pytex/commands/builtin.py +598 -0
  5. pytex/commands/captions.py +56 -0
  6. pytex/commands/cleveref.py +43 -0
  7. pytex/commands/colors.py +60 -0
  8. pytex/commands/conditionals.py +62 -0
  9. pytex/commands/counters.py +85 -0
  10. pytex/commands/definitions.py +109 -0
  11. pytex/commands/floats.py +93 -0
  12. pytex/commands/font.py +138 -0
  13. pytex/commands/fontawesome.py +88 -0
  14. pytex/commands/fontspec.py +75 -0
  15. pytex/commands/geometry.py +25 -0
  16. pytex/commands/glossaries.py +126 -0
  17. pytex/commands/graphics.py +68 -0
  18. pytex/commands/hooks.py +58 -0
  19. pytex/commands/hyperref.py +57 -0
  20. pytex/commands/lengths.py +200 -0
  21. pytex/commands/listings.py +63 -0
  22. pytex/commands/mdframed.py +43 -0
  23. pytex/commands/picture.py +32 -0
  24. pytex/commands/setspace.py +38 -0
  25. pytex/commands/tables.py +123 -0
  26. pytex/helpers/__init__.py +3 -0
  27. pytex/helpers/coerce.py +13 -0
  28. pytex/helpers/parenting.py +13 -0
  29. pytex/helpers/sanitize.py +54 -0
  30. pytex/helpers/with_package.py +61 -0
  31. pytex/interface/__init__.py +3 -0
  32. pytex/interface/control_sequence.py +29 -0
  33. pytex/interface/package.py +52 -0
  34. pytex/interface/tex.py +41 -0
  35. pytex/model/__init__.py +25 -0
  36. pytex/model/color.py +203 -0
  37. pytex/model/concat.py +31 -0
  38. pytex/model/control_sequence.py +72 -0
  39. pytex/model/document.py +120 -0
  40. pytex/model/document_class.py +29 -0
  41. pytex/model/empty.py +19 -0
  42. pytex/model/environment.py +30 -0
  43. pytex/model/image.py +137 -0
  44. pytex/model/include.py +21 -0
  45. pytex/model/length.py +54 -0
  46. pytex/model/math.py +401 -0
  47. pytex/model/package.py +132 -0
  48. pytex/model/raw.py +61 -0
  49. pytex/packages.py +221 -0
  50. pytex/registry.py +49 -0
  51. pytex_builder/__init__.py +8 -0
  52. pytex_builder/build.py +175 -0
  53. pytex_builder/console.py +77 -0
  54. pytex_builder/render.py +90 -0
  55. pytex_builder/tectonic.py +370 -0
  56. pytex_hsrtreport/__init__.py +116 -0
  57. pytex_hsrtreport/assets/fonts/Blender/Blender-Bold.ttf +0 -0
  58. pytex_hsrtreport/assets/fonts/Blender/Blender-BoldItalic.ttf +0 -0
  59. pytex_hsrtreport/assets/fonts/Blender/Blender-Book.ttf +0 -0
  60. pytex_hsrtreport/assets/fonts/Blender/Blender-BookItalic.ttf +0 -0
  61. pytex_hsrtreport/assets/fonts/Blender/Blender-Medium.ttf +0 -0
  62. pytex_hsrtreport/assets/fonts/Blender/Blender-MediumItalic.ttf +0 -0
  63. pytex_hsrtreport/assets/fonts/Blender/Blender-Strong.ttf +0 -0
  64. pytex_hsrtreport/assets/fonts/Blender/Blender-Thin.ttf +0 -0
  65. pytex_hsrtreport/assets/fonts/Blender/Blender-ThinItalic.ttf +0 -0
  66. pytex_hsrtreport/assets/fonts/DIN/DIN-Black.ttf +0 -0
  67. pytex_hsrtreport/assets/fonts/DIN/DIN-Bold.ttf +0 -0
  68. pytex_hsrtreport/assets/fonts/DIN/DIN-BoldItalic.ttf +0 -0
  69. pytex_hsrtreport/assets/fonts/DIN/DIN-Italic.ttf +0 -0
  70. pytex_hsrtreport/assets/fonts/DIN/DIN-Medium.ttf +0 -0
  71. pytex_hsrtreport/assets/fonts/DIN/DIN-Regular.ttf +0 -0
  72. pytex_hsrtreport/assets/fonts/Times New Roman.ttf +0 -0
  73. pytex_hsrtreport/assets/logos/ASTA.svg +79 -0
  74. pytex_hsrtreport/assets/logos/DUMMY.png +0 -0
  75. pytex_hsrtreport/assets/logos/DUMMY_FOOT.png +0 -0
  76. pytex_hsrtreport/assets/logos/ECHO.svg +226 -0
  77. pytex_hsrtreport/assets/logos/HSRT.pdf +0 -0
  78. pytex_hsrtreport/assets/logos/INF.pdf +0 -0
  79. pytex_hsrtreport/assets/logos/STUPA.pdf +0 -0
  80. pytex_hsrtreport/assets/logos/Skyline.pdf +0 -0
  81. pytex_hsrtreport/boxes.py +215 -0
  82. pytex_hsrtreport/citations.py +21 -0
  83. pytex_hsrtreport/cleveref_names.py +47 -0
  84. pytex_hsrtreport/colors.py +30 -0
  85. pytex_hsrtreport/document.py +307 -0
  86. pytex_hsrtreport/fonts.py +66 -0
  87. pytex_hsrtreport/glossary.py +61 -0
  88. pytex_hsrtreport/hyperref_config.py +49 -0
  89. pytex_hsrtreport/listings.py +90 -0
  90. pytex_hsrtreport/logos.py +234 -0
  91. pytex_hsrtreport/pagebreak.py +67 -0
  92. pytex_hsrtreport/pagesetup.py +33 -0
  93. pytex_hsrtreport/tex/pagesetup.tex +76 -0
  94. pytex_hsrtreport/titlepage.py +136 -0
  95. pytex_hsrtreport/variants.py +24 -0
  96. pytex_hsrtreport/voting.py +96 -0
  97. pytex_hsrtreport/watermark.py +63 -0
  98. pytex_hsrtreport/wordcount.py +33 -0
  99. pytex_koma/__init__.py +90 -0
  100. pytex_koma/commands.py +296 -0
  101. pytex_koma/document.py +138 -0
  102. pytex_markdown/__init__.py +62 -0
  103. pytex_markdown/convert.py +271 -0
  104. pytex_markdown/escape.py +11 -0
  105. pytex_preprocessor-0.1.0.dist-info/METADATA +82 -0
  106. pytex_preprocessor-0.1.0.dist-info/RECORD +119 -0
  107. pytex_preprocessor-0.1.0.dist-info/WHEEL +5 -0
  108. pytex_preprocessor-0.1.0.dist-info/entry_points.txt +2 -0
  109. pytex_preprocessor-0.1.0.dist-info/top_level.txt +7 -0
  110. pytex_protocol/__init__.py +37 -0
  111. pytex_protocol/convert.py +202 -0
  112. pytex_protocol/document.py +91 -0
  113. pytex_protocol/entries.py +96 -0
  114. pytex_protocol/frontmatter.py +80 -0
  115. pytex_protocol/header.py +139 -0
  116. pytex_protocol/shortcodes.py +130 -0
  117. pytex_protocol/signatures.py +84 -0
  118. pytex_tikz/__init__.py +25 -0
  119. pytex_tikz/tikz.py +272 -0
@@ -0,0 +1,370 @@
1
+ """Locate, download and drive the ``tectonic`` engine plus ``makeindex``.
2
+
3
+ The tectonic binary is fetched once into a stable temp folder so repeated
4
+ builds reuse it. The official install script drops a self-contained binary into
5
+ its working directory - we point that at the cache dir.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import hashlib
11
+ import os
12
+ import platform
13
+ import shutil
14
+ import subprocess
15
+ import tarfile
16
+ import tempfile
17
+ import xml.etree.ElementTree as ET
18
+ from pathlib import Path
19
+ from typing import TYPE_CHECKING
20
+
21
+ __all__ = ["BuildError", "ensure_tectonic", "run_makeindex", "run_tectonic"]
22
+
23
+ if TYPE_CHECKING:
24
+ from .console import Console
25
+
26
+ INSTALL_URL = "https://drop-sh.fullyjustified.net"
27
+ CACHE_DIR = Path(tempfile.gettempdir()) / "pytex-tectonic"
28
+
29
+ # BCF control-file format version -> compatible biber release.
30
+ # Pattern: BCF minor = biber minor - 9 (holds for biber 2.14+)
31
+ BCF_TO_BIBER: dict[str, str] = {
32
+ "3.5": "2.14",
33
+ "3.6": "2.15",
34
+ "3.7": "2.16",
35
+ "3.8": "2.17",
36
+ "3.9": "2.18",
37
+ "3.10": "2.19",
38
+ "3.11": "2.20",
39
+ "3.12": "2.21",
40
+ }
41
+
42
+ BIBER_RELEASE_URL = (
43
+ "https://sourceforge.net/projects/biblatex-biber/files/"
44
+ "biblatex-biber/{version}/binaries/{sf_dir}/{filename}/download"
45
+ )
46
+
47
+ # Mirror of the upstream biber binaries, hosted as release assets so builds
48
+ # survive SourceForge outages (it periodically gates downloads behind a
49
+ # Cloudflare challenge that curl cannot pass). Tried before SourceForge.
50
+ BIBER_MIRROR_URL = (
51
+ "https://github.com/frederikbeimgraben/PyTeX-Preprocessor"
52
+ "/releases/download/biber-binaries/{asset}"
53
+ )
54
+
55
+ # SHA256 of each upstream biber tarball, keyed by the versioned mirror asset
56
+ # name. Used to verify downloads from either source and to reject HTML error
57
+ # pages a CDN might serve with a 200 status. Linux x86_64 only for now; other
58
+ # platforms download from SourceForge without a pinned checksum.
59
+ BIBER_SHA256: dict[str, str] = {
60
+ "biber-2.11-linux_x86_64.tar.gz": "7fcb51491fb24151810a92b2e2d03b7a1291823c0f8d6fb53183af391fca42e7",
61
+ "biber-2.12-linux_x86_64.tar.gz": "fd0b5145cc908c400a701b583330635d533d750b73a272d1d5ea47e10b2fbf71",
62
+ "biber-2.13-linux_x86_64.tar.gz": "03101f418d46f4666272b68a4318d9e4b7a840d9dfa05d93ddc490d491157a75",
63
+ "biber-2.14-linux_x86_64.tar.gz": "dab3177f03322b5529d07d47d21d9e573a90c23d86eaaf11591b2d155316ee1b",
64
+ "biber-2.15-linux_x86_64.tar.gz": "653c8add18d2e94a233a6b9aae6d8144f965c2ce13fb7b4e66502b55fcd06e06",
65
+ "biber-2.16-linux_x86_64.tar.gz": "3afb97a42d2cf272d3c0b51663725e55339c4e6f3d594cd52e16c39fa9fcfb13",
66
+ "biber-2.17-linux_x86_64.tar.gz": "129d2e0332a57e985ffa253e5e9fbd28ef99af5a068d1b141145211969aa8999",
67
+ "biber-2.18-linux_x86_64.tar.gz": "2a6b4cd15a1139907799da0d23cd4ddcce8341af3960d2b3d1d3e4b4a9f1fb53",
68
+ "biber-2.19-linux_x86_64.tar.gz": "e2eda3e6ea7ac7e78d60e99a0e2aeb1096829f95791c06b768ed31a12889e58e",
69
+ }
70
+
71
+
72
+ class BuildError(RuntimeError):
73
+ """Raised when an external tool is missing or exits non-zero."""
74
+
75
+
76
+ def _cached_binary() -> Path:
77
+ return CACHE_DIR / "tectonic"
78
+
79
+
80
+ def ensure_tectonic(console: Console) -> Path:
81
+ """Return a path to a usable ``tectonic`` binary, downloading if needed."""
82
+ on_path = shutil.which("tectonic")
83
+ if on_path:
84
+ return Path(on_path)
85
+
86
+ cached = _cached_binary()
87
+ if cached.exists():
88
+ return cached
89
+
90
+ if not (shutil.which("curl") and shutil.which("sh")):
91
+ raise BuildError(
92
+ "tectonic is not installed and cannot be downloaded without"
93
+ + " 'curl' and 'sh' on PATH"
94
+ )
95
+
96
+ console.step("Downloading tectonic")
97
+ console.detail(f"target: {cached}")
98
+ CACHE_DIR.mkdir(parents=True, exist_ok=True)
99
+ proc = subprocess.run(
100
+ f"curl --proto '=https' --tlsv1.2 -fsSL {INSTALL_URL} | sh",
101
+ shell=True,
102
+ cwd=CACHE_DIR,
103
+ capture_output=True,
104
+ text=True,
105
+ )
106
+ if proc.returncode != 0 or not cached.exists():
107
+ raise BuildError(
108
+ "failed to download tectonic:\n"
109
+ + (proc.stderr.strip() or "no output from install script")
110
+ )
111
+ cached.chmod(0o755)
112
+ return cached
113
+
114
+
115
+ def _biber_sf_path() -> tuple[str, str]:
116
+ """Return (sourceforge_subdir, filename) for biber on this platform."""
117
+ system = platform.system()
118
+ machine = platform.machine()
119
+ if system == "Linux":
120
+ if machine == "x86_64":
121
+ return "Linux", "biber-linux_x86_64.tar.gz"
122
+ return "Linux-musl", f"biber-linuxmusl_{machine}.tar.gz"
123
+ if system == "Darwin":
124
+ arch = "arm64" if machine == "arm64" else "x86_64"
125
+ return "MacOS", f"biber-darwin_{arch}.tar.gz"
126
+ if system == "Windows":
127
+ return "Windows", "biber-windows_x86_64.zip"
128
+ raise BuildError(
129
+ f"unsupported platform for biber auto-download: {system} {machine}"
130
+ )
131
+
132
+
133
+ def _biber_cached(version: str) -> Path:
134
+ return CACHE_DIR / "biber" / version / "biber"
135
+
136
+
137
+ def _mirror_asset(version: str, filename: str) -> str:
138
+ """Versioned mirror asset name, e.g. ``biber-2.17-linux_x86_64.tar.gz``."""
139
+ return filename.replace("biber-", f"biber-{version}-", 1)
140
+
141
+
142
+ def _biber_sources(version: str) -> list[tuple[str, str | None]]:
143
+ """(url, expected_sha256 or None) pairs to try in order: mirror, then SourceForge."""
144
+ sf_dir, filename = _biber_sf_path()
145
+ asset = _mirror_asset(version, filename)
146
+ sha = BIBER_SHA256.get(asset)
147
+ return [
148
+ (BIBER_MIRROR_URL.format(asset=asset), sha),
149
+ (
150
+ BIBER_RELEASE_URL.format(version=version, sf_dir=sf_dir, filename=filename),
151
+ sha,
152
+ ),
153
+ ]
154
+
155
+
156
+ def _download_to(url: str, dest: Path, sha: str | None, console: Console) -> bool:
157
+ """Fetch *url* into *dest*; return True only on success and matching checksum."""
158
+ proc = subprocess.run(
159
+ ["curl", "-fsSL", "-o", str(dest), url],
160
+ capture_output=True,
161
+ text=True,
162
+ )
163
+ if proc.returncode != 0 or not dest.exists():
164
+ return False
165
+ if sha is not None:
166
+ actual = hashlib.sha256(dest.read_bytes()).hexdigest()
167
+ if actual != sha:
168
+ console.warn(f"checksum mismatch from {url}; discarding")
169
+ dest.unlink(missing_ok=True)
170
+ return False
171
+ return True
172
+
173
+
174
+ def _ensure_biber(version: str, console: Console) -> Path:
175
+ """Return a path to biber *version*, downloading from the mirror or SourceForge."""
176
+ cached = _biber_cached(version)
177
+ if cached.exists():
178
+ return cached
179
+
180
+ if not shutil.which("curl"):
181
+ raise BuildError(
182
+ "biber is not installed and cannot be downloaded without 'curl' on PATH"
183
+ )
184
+
185
+ console.step(f"Downloading biber {version}")
186
+ cached.parent.mkdir(parents=True, exist_ok=True)
187
+ tmp = cached.parent / "biber.download"
188
+ try:
189
+ downloaded = False
190
+ for url, sha in _biber_sources(version):
191
+ console.detail(f"source: {url}")
192
+ if _download_to(url, tmp, sha, console):
193
+ downloaded = True
194
+ break
195
+ if not downloaded:
196
+ raise BuildError(
197
+ f"failed to download biber {version} from the mirror or SourceForge"
198
+ )
199
+ with tarfile.open(tmp) as tf:
200
+ member = next(
201
+ (
202
+ m
203
+ for m in tf.getmembers()
204
+ if Path(m.name).name == "biber" and m.isfile()
205
+ ),
206
+ None,
207
+ )
208
+ if member is None:
209
+ raise BuildError(
210
+ f"biber binary not found inside the biber {version} archive"
211
+ )
212
+ src = tf.extractfile(member)
213
+ if src is None:
214
+ raise BuildError(
215
+ f"could not read biber from the biber {version} archive"
216
+ )
217
+ cached.write_bytes(src.read())
218
+ except Exception:
219
+ if cached.exists():
220
+ cached.unlink()
221
+ raise
222
+ finally:
223
+ if tmp.exists():
224
+ tmp.unlink()
225
+
226
+ cached.chmod(0o755)
227
+ return cached
228
+
229
+
230
+ def _biber_for_build(build_dir: Path, job: str, console: Console) -> Path | None:
231
+ """Return a correctly-versioned biber if the BCF file reveals a mismatch."""
232
+ bcf = build_dir / f"{job}.bcf"
233
+ if not bcf.exists():
234
+ return None
235
+ try:
236
+ root = ET.parse(bcf).getroot()
237
+ bcf_ver = root.get("version")
238
+ except ET.ParseError:
239
+ return None
240
+ if bcf_ver is None:
241
+ return None
242
+ biber_ver = BCF_TO_BIBER.get(bcf_ver)
243
+ if biber_ver is None:
244
+ console.warn(f"unknown BCF version {bcf_ver!r}; using system biber")
245
+ return None
246
+ # System biber may already be the right version - avoid downloading.
247
+ system_biber = shutil.which("biber")
248
+ if system_biber:
249
+ result = subprocess.run(
250
+ [system_biber, "--version"], capture_output=True, text=True
251
+ )
252
+ if f"biber version: {biber_ver}" in result.stdout:
253
+ return Path(system_biber)
254
+ return _ensure_biber(biber_ver, console)
255
+
256
+
257
+ def _env_with_biber(biber: Path) -> dict[str, str]:
258
+ env = os.environ.copy()
259
+ env["PATH"] = str(biber.parent) + os.pathsep + env.get("PATH", "")
260
+ return env
261
+
262
+
263
+ def _probe_bcf(cmd: list[str]) -> None:
264
+ """Run tectonic with a no-op biber so the BCF file is written to build_dir.
265
+
266
+ Tectonic cleans up intermediates when biber fails, so the BCF is never
267
+ persisted on a real failed run. A fake biber that exits 0 lets the TeX
268
+ pass finish and tectonic copy the BCF into ``build_dir``. Output is
269
+ suppressed - the real pass immediately follows.
270
+ """
271
+ tmpdir = Path(tempfile.mkdtemp(prefix="pytex-fakeb-"))
272
+ try:
273
+ fake = tmpdir / "biber"
274
+ fake.write_text("#!/bin/sh\nexit 0\n")
275
+ fake.chmod(0o755)
276
+ subprocess.run(cmd, env=_env_with_biber(fake), capture_output=True)
277
+ finally:
278
+ shutil.rmtree(tmpdir, ignore_errors=True)
279
+
280
+
281
+ def run_tectonic(
282
+ binary: Path,
283
+ tex_file: Path,
284
+ build_dir: Path,
285
+ *,
286
+ shell_escape: bool,
287
+ console: Console,
288
+ ) -> None:
289
+ """Run a single tectonic pass, keeping intermediates for the glossary step."""
290
+ cmd: list[str] = [
291
+ str(binary),
292
+ "--outdir",
293
+ str(build_dir),
294
+ "--keep-intermediates",
295
+ "--keep-logs",
296
+ "--synctex",
297
+ ]
298
+ if shell_escape:
299
+ # shell-escape (and a stable cwd for it) is required so inline images
300
+ # can decode their base64 payloads at compile time.
301
+ cmd += ["-Z", "shell-escape"]
302
+ cmd += ["-Z", f"shell-escape-cwd={tex_file.parent.resolve()}"]
303
+ cmd.append(str(tex_file))
304
+
305
+ job = tex_file.stem
306
+
307
+ # Determine the right biber from the BCF. If no BCF exists yet (first build
308
+ # or after a clean), run a silent probe pass with a no-op biber so tectonic
309
+ # writes the BCF to build_dir without actually needing biber installed.
310
+ biber = _biber_for_build(build_dir, job, console)
311
+ if biber is None:
312
+ _probe_bcf(cmd)
313
+ biber = _biber_for_build(build_dir, job, console)
314
+
315
+ env = _env_with_biber(biber) if biber is not None else None
316
+ proc = subprocess.run(cmd, env=env)
317
+ if proc.returncode != 0:
318
+ log = build_dir / f"{tex_file.stem}.log"
319
+ raise BuildError(
320
+ "tectonic failed to compile the document."
321
+ + (f"\nSee the full log at {log}" if log.exists() else "")
322
+ )
323
+
324
+
325
+ def run_makeindex(
326
+ job: str,
327
+ build_dir: Path,
328
+ *,
329
+ console: Console,
330
+ ) -> bool:
331
+ """Resolve glossary/acronym indices for ``glossaries``.
332
+
333
+ Returns ``True`` if any index was (re)built, meaning a further tectonic
334
+ pass is needed. Missing ``makeindex`` is a warning, not a fatal error.
335
+ """
336
+ makeindex = shutil.which("makeindex")
337
+ style = build_dir / f"{job}.ist"
338
+
339
+ # (input, log, output) triples produced by the glossaries package.
340
+ targets = [
341
+ (f"{job}.glo", f"{job}.glg", f"{job}.gls"),
342
+ (f"{job}.acn", f"{job}.alg", f"{job}.acr"),
343
+ ]
344
+ present = [t for t in targets if (build_dir / t[0]).exists()]
345
+
346
+ if not present or not style.exists():
347
+ return False
348
+
349
+ if not makeindex:
350
+ console.warn("glossary entries found but 'makeindex' is not installed")
351
+ console.hint(
352
+ "install a TeX distribution providing 'makeindex'"
353
+ + " (e.g. TeX Live) so glossaries and acronyms resolve"
354
+ )
355
+ return False
356
+
357
+ console.step("Building glossaries")
358
+ for source, log, output in present:
359
+ proc = subprocess.run(
360
+ [makeindex, "-s", style.name, "-t", log, "-o", output, source],
361
+ cwd=build_dir,
362
+ capture_output=True,
363
+ text=True,
364
+ )
365
+ if proc.returncode != 0:
366
+ console.warn(f"makeindex failed for {source}")
367
+ console.detail(proc.stderr.strip() or proc.stdout.strip())
368
+ return False
369
+ console.detail(f"{source} -> {output}")
370
+ return True
@@ -0,0 +1,116 @@
1
+ from . import (
2
+ boxes,
3
+ citations,
4
+ cleveref_names,
5
+ colors,
6
+ document,
7
+ fonts,
8
+ glossary,
9
+ hyperref_config,
10
+ listings,
11
+ logos,
12
+ pagebreak,
13
+ pagesetup,
14
+ titlepage,
15
+ variants,
16
+ voting,
17
+ watermark,
18
+ wordcount,
19
+ )
20
+ from .boxes import (
21
+ ColoredBox,
22
+ CustomBox,
23
+ DiscussionBox,
24
+ ImportantBox,
25
+ InfoBox,
26
+ SuccessBox,
27
+ WarningBox,
28
+ )
29
+ from .citations import Fcite
30
+ from .cleveref_names import GermanCrefNames
31
+ from .colors import HSRT_PALETTE, HSRTColors
32
+ from .document import HSRTReport
33
+ from .fonts import HSRTFontSetup
34
+ from .glossary import AcrShortcut, HSRTGlossarySetup
35
+ from .hyperref_config import (
36
+ HSRT_CITE_COLOR,
37
+ HSRT_HYPER_OPTIONS,
38
+ HSRT_LINK_COLOR,
39
+ HSRT_URL_COLOR,
40
+ HSRTHyperref,
41
+ )
42
+ from .listings import HSRTListingStyles, style_options
43
+ from .logos import DefaultLogos, Logo, LogoStrip, logo_path
44
+ from .pagebreak import (
45
+ Conditionalpagebreak,
46
+ Critical,
47
+ Keeptogether,
48
+ Smartsection,
49
+ Smartsubsection,
50
+ )
51
+ from .pagesetup import HSRTPageSetup
52
+ from .titlepage import TitlePage, TitlePageDataLine
53
+ from .variants import Variant, default_logo_names
54
+ from .voting import VotingResults
55
+ from .watermark import DraftWatermark, WatermarkCounter
56
+ from .wordcount import WordcountCommands
57
+
58
+ __all__ = [
59
+ "HSRT_CITE_COLOR",
60
+ "HSRT_HYPER_OPTIONS",
61
+ "HSRT_LINK_COLOR",
62
+ "HSRT_PALETTE",
63
+ "HSRT_URL_COLOR",
64
+ "AcrShortcut",
65
+ "ColoredBox",
66
+ "Conditionalpagebreak",
67
+ "Critical",
68
+ "CustomBox",
69
+ "DefaultLogos",
70
+ "DiscussionBox",
71
+ "DraftWatermark",
72
+ "Fcite",
73
+ "GermanCrefNames",
74
+ "HSRTColors",
75
+ "HSRTFontSetup",
76
+ "HSRTGlossarySetup",
77
+ "HSRTHyperref",
78
+ "HSRTListingStyles",
79
+ "HSRTPageSetup",
80
+ "HSRTReport",
81
+ "ImportantBox",
82
+ "InfoBox",
83
+ "Keeptogether",
84
+ "Logo",
85
+ "LogoStrip",
86
+ "Smartsection",
87
+ "Smartsubsection",
88
+ "SuccessBox",
89
+ "TitlePage",
90
+ "TitlePageDataLine",
91
+ "Variant",
92
+ "VotingResults",
93
+ "WarningBox",
94
+ "WatermarkCounter",
95
+ "WordcountCommands",
96
+ "boxes",
97
+ "citations",
98
+ "cleveref_names",
99
+ "colors",
100
+ "default_logo_names",
101
+ "document",
102
+ "fonts",
103
+ "glossary",
104
+ "hyperref_config",
105
+ "listings",
106
+ "logo_path",
107
+ "logos",
108
+ "pagebreak",
109
+ "pagesetup",
110
+ "style_options",
111
+ "titlepage",
112
+ "variants",
113
+ "voting",
114
+ "watermark",
115
+ "wordcount",
116
+ ]
@@ -0,0 +1,79 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="240mm"
6
+ height="71.4375mm"
7
+ viewBox="0 0 239.99999 71.437526"
8
+ version="1.1"
9
+ id="svg1"
10
+ xml:space="preserve"
11
+ sodipodi:docname="ASTA-Logo_black-only-complex.svg"
12
+ inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
13
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
17
+ id="namedview1"
18
+ pagecolor="#505050"
19
+ bordercolor="#ffffff"
20
+ borderopacity="1"
21
+ inkscape:showpageshadow="0"
22
+ inkscape:pageopacity="0"
23
+ inkscape:pagecheckerboard="1"
24
+ inkscape:deskcolor="#505050"
25
+ inkscape:document-units="mm"
26
+ inkscape:zoom="0.52056996"
27
+ inkscape:cx="113.33731"
28
+ inkscape:cy="223.79317"
29
+ inkscape:window-width="2560"
30
+ inkscape:window-height="1047"
31
+ inkscape:window-x="0"
32
+ inkscape:window-y="0"
33
+ inkscape:window-maximized="1"
34
+ inkscape:current-layer="layer1" /><defs
35
+ id="defs1"><clipPath
36
+ clipPathUnits="userSpaceOnUse"
37
+ id="clipPath157"><path
38
+ d="m 58.961,783.842 h 113.386 v 29.701 H 58.961 Z"
39
+ transform="translate(-84.798705,-783.84222)"
40
+ id="path157" /></clipPath></defs><g
41
+ id="layer1"
42
+ transform="translate(0,-43.656246)"><path
43
+ d="M 0,0 V 0 29.701 C 0.696,29.005 1.086,28.615 1.782,27.919 V 1.782 C 1.086,1.086 0.696,0.696 0,0"
44
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
45
+ transform="matrix(2.3186545,0,0,-2.3186545,60.75005,113.80792)"
46
+ clip-path="url(#clipPath157)"
47
+ id="path228" /><path
48
+ style="font-weight:bold;font-size:69.6213px;line-height:0.8;font-family:Blender-Bold;-inkscape-font-specification:'Blender-Bold Bold';text-align:center;letter-spacing:5.59457px;text-anchor:middle;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
49
+ d="m 116.35835,90.999077 h -7.79759 l -2.92409,-8.841905 H 89.55415 l -2.924095,8.841905 H 78.83247 L 93.174457,49.36554 h 8.911523 z M 97.630221,57.789717 91.851653,75.195042 h 11.487517 z m 49.456039,33.557466 h -11.83562 q -4.10766,0 -7.93683,-4.595005 -1.74054,-2.019018 -2.43675,-3.829172 l 7.171,-1.879775 q 0.97469,1.462047 1.94939,2.436745 1.04432,0.905077 1.53167,0.905077 h 11.41789 q 0.41773,0 1.87978,-1.462047 1.46205,-1.462047 1.46205,-1.879775 v -4.107657 q 0,-1.044319 -0.83546,-1.183562 l -18.10154,-5.151976 q -2.57599,-0.696213 -4.03803,-2.854473 -1.39243,-2.158261 -1.39243,-4.734249 v -3.481065 q 0,-2.993716 1.67091,-4.943112 1.67091,-1.949396 3.13296,-3.272201 2.50637,-2.297503 5.70895,-2.297503 h 10.16471 q 4.10765,0 7.93683,4.595006 1.74053,2.019018 2.43674,3.829171 l -7.17099,1.879775 q -0.90508,-1.462047 -1.9494,-2.367124 -1.04432,-0.974698 -1.46205,-0.974698 h -9.8166 q -0.41773,0 -1.87978,1.462047 -1.46204,1.462048 -1.46204,1.879775 v 3.272202 q 0,1.044319 0.76583,1.183562 l 18.17116,5.291218 q 2.57599,0.765835 3.96842,2.924095 1.46204,2.15826 1.46204,4.664627 v 4.177278 q 0,2.993716 -1.67091,4.943112 -1.67091,1.949397 -3.13296,3.272201 -2.50636,2.297503 -5.70894,2.297503 z M 168.13683,49.36554 h 29.86754 v 6.96213 h -11.27865 v 34.671407 h -7.31024 V 56.32767 h -11.27865 z m 70.76006,41.633537 h -7.79759 l -2.92409,-8.841905 h -16.08252 l -2.9241,8.841905 h -7.79758 L 215.71299,49.36554 h 8.91153 z m -18.72813,-33.20936 -5.77857,17.405325 h 11.48751 z"
50
+ id="text1"
51
+ aria-label="ASTA" /><path
52
+ style="font-weight:500;font-size:19.5151px;line-height:0.8;font-family:Blender-Medium;-inkscape-font-specification:'Blender-Medium Medium';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
53
+ d="m 84.374802,108.9737 h -1.795389 l -2.322297,-4.87877 h -2.712599 v 4.87877 H 75.944279 V 97.323186 h 5.522773 q 0.663514,0 1.151391,0.351272 0.195151,0.136606 0.507393,0.448848 0.331757,0.312241 0.468362,0.507392 0.331757,0.507393 0.331757,1.170906 v 1.814906 q 0,0.68303 -0.331757,1.1709 -0.136605,0.19516 -0.468362,0.5074 -0.312242,0.31224 -0.507393,0.44884 -0.273211,0.19516 -0.663513,0.29273 z M 81.291416,98.864879 h -3.746899 v 3.688351 h 3.746899 q 0.312242,0 0.663514,-0.37078 0.370787,-0.35128 0.370787,-0.644 v -1.658785 q 0,-0.273212 -0.370787,-0.663514 -0.351272,-0.351272 -0.663514,-0.351272 z m 12.040808,4.059141 v 2.57599 h -5.542289 v 1.09285 q 0,0.29273 0.370787,0.66351 0.390302,0.37079 0.663514,0.37079 h 2.088115 q 0.09758,0 0.195151,-0.039 0.117091,-0.0586 0.234182,-0.17564 0.11709,-0.1366 0.175636,-0.19515 0.05854,-0.0585 0.195151,-0.25369 0.15612,-0.19515 0.175635,-0.21467 l 1.405088,0.44885 q -0.99527,1.87345 -2.400358,1.87345 h -2.146661 q -0.683028,0 -1.170906,-0.33176 -0.195151,-0.13661 -0.507392,-0.44885 -0.312242,-0.33175 -0.448848,-0.5269 -0.351272,-0.48788 -0.351272,-1.1514 v -3.68835 q 0,-0.68303 0.351272,-1.15139 0.136606,-0.19515 0.448848,-0.50739 0.312241,-0.33176 0.507392,-0.46837 0.487878,-0.33175 1.170906,-0.33175 h 2.127146 q 0.663514,0 1.151391,0.33175 0.195151,0.13661 0.507393,0.46837 0.331756,0.31224 0.468362,0.50739 0.331757,0.46836 0.331757,1.15139 z m -4.507988,-1.01478 q -0.292727,0 -0.663514,0.37078 -0.370787,0.37079 -0.370787,0.66352 v 1.1709 h 4.020111 v -1.1709 q 0,-0.29273 -0.370787,-0.66352 -0.351272,-0.37078 -0.663513,-0.37078 z m 13.875224,7.06446 h -1.48315 l -0.11709,-0.70254 q -0.91721,0.80012 -1.463631,0.80012 h -1.580723 q -0.663514,0 -1.151391,-0.33176 -0.195151,-0.13661 -0.526908,-0.44885 -0.312241,-0.33175 -0.448847,-0.5269 -0.331757,-0.5074 -0.331757,-1.1514 v -6.04968 h 1.522178 v 6.03017 q 0,0.29273 0.370787,0.66351 0.370787,0.37079 0.663513,0.37079 h 1.424603 q 0.312241,0 0.780606,-0.37079 0.46836,-0.3903 0.644,-0.68303 v -6.01065 h 1.52217 v 6.83029 z m 6.86931,-8.41101 v 1.44412 h -2.47842 v 4.48847 q 0,0.29273 0.37079,0.66352 0.3903,0.37078 0.66351,0.37078 h 1.17091 v 1.44412 h -1.24897 q -0.68303,0 -1.1709,-0.33176 -0.19515,-0.1366 -0.5074,-0.44884 -0.31224,-0.33176 -0.44884,-0.52691 -0.35128,-0.48788 -0.35128,-1.15139 v -4.50799 h -1.32702 v -1.44412 h 1.32702 v -3.161443 h 1.52218 v 3.161443 z m 3.59079,8.41101 h -1.54169 q -0.039,-0.21466 -0.11709,-0.68303 -0.0586,-0.48787 -0.0976,-0.70254 V 97.323186 h 1.52218 v 10.050274 q 0.039,0.31224 0.23418,1.60024 z m 3.92253,-9.874639 h -1.73684 v -1.79539 h 1.73684 z m -0.0976,9.874639 h -1.52218 v -8.41101 h 1.52218 z m 9.11355,-7.20107 q 0.35127,0.46836 0.35127,1.15139 v 6.04968 h -1.52218 v -6.03016 q 0,-0.29273 -0.37079,-0.66352 -0.37078,-0.37078 -0.66351,-0.37078 h -1.4246 q -0.29273,0 -0.72206,0.35127 -0.42933,0.35127 -0.70254,0.68303 v 6.03016 h -1.52218 v -6.8498 l -0.17564,-1.56121 h 1.48315 l 0.13661,0.68303 q 0.93672,-0.7806 1.44411,-0.7806 h 1.56121 q 0.66351,0 1.17091,0.33175 0.19515,0.13661 0.50739,0.46837 0.31224,0.31224 0.44885,0.50739 z m 7.20106,10.44058 h -1.95151 q -1.38557,0 -2.41987,-1.81491 l 1.4246,-0.44884 q 0.56594,0.81963 0.93673,0.81963 h 1.93199 q 0.29273,0 0.66352,-0.37079 0.37078,-0.37078 0.37078,-0.66351 v -1.46363 q -0.80012,0.80012 -1.4246,0.80012 h -1.63927 q -0.68303,0 -1.1709,-0.33176 -0.19515,-0.13661 -0.5074,-0.44885 -0.31224,-0.33175 -0.44884,-0.5269 -0.35127,-0.48788 -0.35127,-1.1514 v -3.68835 q 0,-0.68303 0.35127,-1.15139 0.1366,-0.19515 0.44884,-0.50739 0.31225,-0.33176 0.5074,-0.46837 0.48787,-0.33175 1.1709,-0.33175 h 1.65879 q 0.54642,0 1.46363,0.80012 l 0.0976,-0.70255 h 1.50267 l -0.13661,1.56121 v 7.63041 q 0,0.68302 -0.35127,1.15139 -0.13661,0.19515 -0.44885,0.50739 -0.31224,0.33176 -0.50739,0.46836 -0.50739,0.33176 -1.17091,0.33176 z m -3.06387,-9.26967 v 3.64932 q 0,0.29273 0.37079,0.66351 0.3903,0.37079 0.66351,0.37079 h 1.5417 q 0.21466,0 0.72206,-0.40982 0.5269,-0.40981 0.72205,-0.70254 v -3.53223 q -0.17563,-0.27322 -0.70254,-0.66352 -0.52691,-0.40981 -0.76109,-0.40981 h -1.52218 q -0.29272,0 -0.66351,0.37078 -0.37079,0.37079 -0.37079,0.66352 z m 14.90953,-0.0195 v 2.57599 h -5.54229 v 1.09285 q 0,0.29273 0.37079,0.66351 0.3903,0.37079 0.66351,0.37079 h 2.08812 q 0.0976,0 0.19515,-0.039 0.11709,-0.0586 0.23418,-0.17564 0.11709,-0.1366 0.17564,-0.19515 0.0585,-0.0585 0.19515,-0.25369 0.15612,-0.19515 0.17564,-0.21467 l 1.40508,0.44885 q -0.99527,1.87345 -2.40036,1.87345 h -2.14666 q -0.68302,0 -1.1709,-0.33176 -0.19515,-0.13661 -0.50739,-0.44885 -0.31225,-0.33175 -0.44885,-0.5269 -0.35127,-0.48788 -0.35127,-1.1514 v -3.68835 q 0,-0.68303 0.35127,-1.15139 0.1366,-0.19515 0.44885,-0.50739 0.31224,-0.33176 0.50739,-0.46837 0.48788,-0.33175 1.1709,-0.33175 h 2.12715 q 0.66351,0 1.15139,0.33175 0.19515,0.13661 0.50739,0.46837 0.33176,0.31224 0.46837,0.50739 0.33175,0.46836 0.33175,1.15139 z m -4.50799,-1.01478 q -0.29272,0 -0.66351,0.37078 -0.37079,0.37079 -0.37079,0.66352 v 1.1709 h 4.02011 v -1.1709 q 0,-0.29273 -0.37078,-0.66352 -0.35127,-0.37078 -0.66352,-0.37078 z m 13.42638,-0.13661 q 0.35127,0.46836 0.35127,1.15139 v 6.04968 h -1.52218 v -6.03016 q 0,-0.29273 -0.37079,-0.66352 -0.37078,-0.37078 -0.66351,-0.37078 h -1.4246 q -0.29273,0 -0.72206,0.35127 -0.42933,0.35127 -0.70254,0.68303 v 6.03016 h -1.52218 v -6.8498 l -0.17564,-1.56121 h 1.48315 l 0.13661,0.68303 q 0.93672,-0.7806 1.44411,-0.7806 h 1.56121 q 0.66351,0 1.17091,0.33175 0.19515,0.13661 0.50739,0.46837 0.31224,0.31224 0.44885,0.50739 z m 12.76288,7.29865 h -2.51745 q -0.78061,0 -1.30751,-0.46837 -0.5074,-0.42933 -0.85867,-0.81963 -0.60497,-0.66351 -0.60497,-1.48315 v -8.976944 h 1.60024 v 9.035494 q 0,0.21466 0.48788,0.70254 0.50739,0.48788 0.70254,0.48788 h 2.45891 q 0.21466,0 0.70254,-0.48788 0.50739,-0.50739 0.50739,-0.70254 v -9.035494 h 1.60024 v 8.976944 q 0,0.78061 -0.46836,1.32703 -0.44885,0.48788 -0.83915,0.83915 -0.62448,0.60497 -1.46363,0.60497 z m 12.0213,-7.29865 q 0.35128,0.46836 0.35128,1.15139 v 6.04968 h -1.52218 v -6.03016 q 0,-0.29273 -0.37079,-0.66352 -0.37079,-0.37078 -0.66351,-0.37078 h -1.4246 q -0.29273,0 -0.72206,0.35127 -0.42934,0.35127 -0.70255,0.68303 v 6.03016 h -1.52217 v -6.8498 l -0.17564,-1.56121 h 1.48315 l 0.1366,0.68303 q 0.93673,-0.7806 1.44412,-0.7806 h 1.56121 q 0.66351,0 1.1709,0.33175 0.19516,0.13661 0.5074,0.46837 0.31224,0.31224 0.44884,0.50739 z m 4.41041,-2.673569 h -1.73684 v -1.79539 h 1.73684 z m -0.0976,9.874639 h -1.52218 v -8.41101 h 1.52218 z m 5.32762,-1.89296 2.22472,-6.51805 h 1.61975 l -2.96629,8.41101 h -1.77588 l -2.96629,-8.41101 h 1.65878 z m 12.17742,-4.15672 v 2.57599 h -5.54229 v 1.09285 q 0,0.29273 0.37079,0.66351 0.3903,0.37079 0.66351,0.37079 h 2.08812 q 0.0976,0 0.19515,-0.039 0.11709,-0.0586 0.23418,-0.17564 0.11709,-0.1366 0.17563,-0.19515 0.0585,-0.0585 0.19516,-0.25369 0.15612,-0.19515 0.17563,-0.21467 l 1.40509,0.44885 q -0.99527,1.87345 -2.40036,1.87345 h -2.14666 q -0.68303,0 -1.17091,-0.33176 -0.19515,-0.13661 -0.50739,-0.44885 -0.31224,-0.33175 -0.44885,-0.5269 -0.35127,-0.48788 -0.35127,-1.1514 v -3.68835 q 0,-0.68303 0.35127,-1.15139 0.13661,-0.19515 0.44885,-0.50739 0.31224,-0.33176 0.50739,-0.46837 0.48788,-0.33175 1.17091,-0.33175 h 2.12715 q 0.66351,0 1.15139,0.33175 0.19515,0.13661 0.50739,0.46837 0.33176,0.31224 0.46836,0.50739 0.33176,0.46836 0.33176,1.15139 z m -4.50799,-1.01478 q -0.29273,0 -0.66351,0.37078 -0.37079,0.37079 -0.37079,0.66352 v 1.1709 h 4.02011 v -1.1709 q 0,-0.29273 -0.37079,-0.66352 -0.35127,-0.37078 -0.66351,-0.37078 z m 12.09935,-1.19043 -0.46836,1.288 q -0.19515,-0.0976 -0.44884,-0.0976 h -1.38558 q -0.31224,0 -0.7806,0.37078 -0.46836,0.37079 -0.644,0.66352 v 6.03016 h -1.52218 v -6.8498 l -0.17563,-1.56121 h 1.46363 l 0.13661,0.70255 q 0.89769,-0.80012 1.46363,-0.80012 h 1.40508 q 0.48788,0 0.95624,0.25369 z m 5.71792,8.35247 h -2.40036 q -1.40509,0 -2.40036,-1.87345 l 1.40509,-0.44885 q 0.62448,0.87818 0.93672,0.87818 h 2.38085 q 0.29272,0 0.66351,-0.37079 0.37079,-0.3903 0.37079,-0.66351 v -0.50739 q 0,-0.46837 -0.48788,-0.5074 l -3.31757,-0.29272 q -0.76109,-0.0585 -1.24896,-0.54643 -0.46837,-0.50739 -0.46837,-1.32702 v -0.48788 q 0,-0.68303 0.33176,-1.15139 0.13661,-0.19515 0.44885,-0.50739 0.33175,-0.33176 0.5269,-0.46837 0.46837,-0.33175 1.1514,-0.33175 h 2.0686 q 1.36605,0 2.41987,1.85393 l -1.4246,0.44885 q -0.62449,-0.85866 -0.93673,-0.85866 h -2.04908 q -0.27322,0 -0.66352,0.37078 -0.35127,0.35127 -0.35127,0.66352 v 0.42933 q 0,0.44884 0.48788,0.48788 l 3.2395,0.31224 q 0.78061,0.0781 1.288,0.58545 0.50739,0.48788 0.50739,1.30751 v 0.54642 q 0,0.66352 -0.35127,1.1514 -0.1366,0.19515 -0.44885,0.5269 -0.31224,0.31224 -0.50739,0.44885 -0.48788,0.33176 -1.1709,0.33176 z m 6.28384,-9.972219 h -1.73684 v -1.79539 h 1.73684 z m -0.0976,9.874639 h -1.52217 v -8.41101 h 1.52217 z m 7.00593,-8.41101 v 1.44412 h -2.47842 v 4.48847 q 0,0.29273 0.37078,0.66352 0.39031,0.37078 0.66352,0.37078 h 1.1709 v 1.44412 h -1.24896 q -0.68303,0 -1.17091,-0.33176 -0.19515,-0.1366 -0.50739,-0.44884 -0.31224,-0.33176 -0.44885,-0.52691 -0.35127,-0.48788 -0.35127,-1.15139 v -4.50799 h -1.32703 v -1.44412 h 1.32703 v -3.161443 h 1.52218 v 3.161443 z m 4.78121,6.53756 2.20521,-6.53756 h 1.60024 l -4.03963,11.59197 h -1.52218 l 1.13188,-3.18096 h -0.31224 l -2.9663,-8.41101 h 1.65879 z"
54
+ id="text2"
55
+ aria-label="Reutlingen University" /><path
56
+ id="polyline12-3-6-4"
57
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
58
+ d="m 8.822073,128.83893 c -0.6361326,0.006 -1.2719273,0.0473 -1.9038781,0.12464 -0.5800689,0.071 -1.5135609,0.24033 -2.0816397,0.37749 -0.6492005,0.15675 -1.2885666,0.3521 -1.9146076,0.58348 -0.5481631,0.20259 -0.5131347,0.47336 0.058538,0.59493 2.9509899,0.62754 5.9711398,1.80027 8.8163284,3.0101 0.537817,0.22869 1.426809,0.28143 1.995848,0.14819 1.958682,-0.45863 3.987694,-0.614 5.991774,-0.43805 0.582179,0.0511 0.702175,-0.19834 0.245489,-0.56299 -2.595508,-2.07238 -5.795766,-3.36342 -9.095187,-3.73036 -0.580836,-0.0646 -1.5282803,-0.11307 -2.112665,-0.10743 z m -8.55566959,2.32733 c -2.44240381,1.39799 -4.55765001,3.37187 -6.08501941,5.73589 -0.3171424,0.49086 -0.072021,0.90648 0.5124799,0.90645 3.2971384,-1.1e-4 6.5942472,-3.2e-4 9.891386,-4.4e-4 0.5845013,-2e-5 1.4143419,-0.31346 1.8771438,-0.67034 1.3947984,-1.07555 2.9425551,-1.94757 4.5792753,-2.59739 0.543184,-0.21566 0.558446,-0.55074 0.01937,-0.77664 -2.8391588,-1.18976 -5.817415,-2.30468 -8.6817126,-2.85447 -0.5738918,-0.11015 -1.1188578,-0.18383 -1.1793956,-0.24129 l 0,-4e-5 z m 16.13644859,3.91701 c -0.447385,0.0453 -0.376692,0.29819 0.137922,0.57518 3.554419,1.91313 7.069403,5.33977 9.847113,12.13348 0.221201,0.54101 0.441895,0.5132 0.468681,-0.0706 0.180941,-3.94362 -0.965014,-7.94068 -3.218123,-11.1833 -0.33348,-0.47994 -1.083832,-0.98852 -1.653569,-1.11862 -1.137796,-0.2598 -2.301738,-0.39965 -3.468403,-0.42245 -0.584298,-0.0114 -1.532183,0.0274 -2.113621,0.0863 z m -2.722882,0.49402 c -1.242292,0.32822 -2.44795,0.79331 -3.585533,1.39135 -0.5172725,0.27194 -1.0910917,0.86181 -0.91515,0.84258 5.867554,0.40567 10.503658,2.59281 13.860687,6.05313 0.40696,0.41948 1.025106,1.13865 1.387738,1.59702 0.140834,0.17802 0.279391,0.35812 0.414933,0.54049 0.348594,0.46901 0.416078,0.43287 0.162966,-0.094 -2.684074,-5.58668 -5.895551,-8.40666 -9.124966,-10.03018 -0.522153,-0.2625 -1.053292,-0.48897 -1.169913,-0.53976 l -2e-6,3e-5 z"
59
+ transform="translate(10.205122,-72.949162)" /><path
60
+ id="polyline12-3-6-4-8"
61
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
62
+ d="m 8.822073,128.83893 c -0.6361326,0.006 -1.2719273,0.0473 -1.9038781,0.12464 -0.5800689,0.071 -1.5135609,0.24033 -2.0816397,0.37749 -0.6492005,0.15675 -1.2885666,0.3521 -1.9146076,0.58348 -0.5481631,0.20259 -0.5131347,0.47336 0.058538,0.59493 2.9509899,0.62754 5.9711398,1.80027 8.8163284,3.0101 0.537817,0.22869 1.426809,0.28143 1.995848,0.14819 1.958682,-0.45863 3.987694,-0.614 5.991774,-0.43805 0.582179,0.0511 0.702175,-0.19834 0.245489,-0.56299 -2.595508,-2.07238 -5.795766,-3.36342 -9.095187,-3.73036 -0.580836,-0.0646 -1.5282803,-0.11307 -2.112665,-0.10743 z m -8.55566959,2.32733 c -2.44240381,1.39799 -4.55765001,3.37187 -6.08501941,5.73589 -0.3171424,0.49086 -0.072021,0.90648 0.5124799,0.90645 3.2971384,-1.1e-4 6.5942472,-3.2e-4 9.891386,-4.4e-4 0.5845013,-2e-5 1.4143419,-0.31346 1.8771438,-0.67034 1.3947984,-1.07555 2.9425551,-1.94757 4.5792753,-2.59739 0.543184,-0.21566 0.558446,-0.55074 0.01937,-0.77664 -2.8391588,-1.18976 -5.817415,-2.30468 -8.6817126,-2.85447 -0.5738918,-0.11015 -1.1188578,-0.18383 -1.1793956,-0.24129 l 0,-4e-5 z m 16.13644859,3.91701 c -0.447385,0.0453 -0.376692,0.29819 0.137922,0.57518 3.554419,1.91313 7.069403,5.33977 9.847113,12.13348 0.221201,0.54101 0.441895,0.5132 0.468681,-0.0706 0.180941,-3.94362 -0.965014,-7.94068 -3.218123,-11.1833 -0.33348,-0.47994 -1.083832,-0.98852 -1.653569,-1.11862 -1.137796,-0.2598 -2.301738,-0.39965 -3.468403,-0.42245 -0.584298,-0.0114 -1.532183,0.0274 -2.113621,0.0863 z m -2.722882,0.49402 c -1.242292,0.32822 -2.44795,0.79331 -3.585533,1.39135 -0.5172725,0.27194 -1.0910917,0.86181 -0.91515,0.84258 5.867554,0.40567 10.503658,2.59281 13.860687,6.05313 0.40696,0.41948 1.025106,1.13865 1.387738,1.59702 0.140834,0.17802 0.279391,0.35812 0.414933,0.54049 0.348594,0.46901 0.416078,0.43287 0.162966,-0.094 -2.684074,-5.58668 -5.895551,-8.40666 -9.124966,-10.03018 -0.522153,-0.2625 -1.053292,-0.48897 -1.169913,-0.53976 l -2e-6,3e-5 z"
63
+ transform="rotate(-60,-39.930999,107.02967)" /><path
64
+ id="polyline12-3-6-4-6"
65
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
66
+ d="m 8.822073,128.83893 c -0.6361326,0.006 -1.2719273,0.0473 -1.9038781,0.12464 -0.5800689,0.071 -1.5135609,0.24033 -2.0816397,0.37749 -0.6492005,0.15675 -1.2885666,0.3521 -1.9146076,0.58348 -0.5481631,0.20259 -0.5131347,0.47336 0.058538,0.59493 2.9509899,0.62754 5.9711398,1.80027 8.8163284,3.0101 0.537817,0.22869 1.426809,0.28143 1.995848,0.14819 1.958682,-0.45863 3.987694,-0.614 5.991774,-0.43805 0.582179,0.0511 0.702175,-0.19834 0.245489,-0.56299 -2.595508,-2.07238 -5.795766,-3.36342 -9.095187,-3.73036 -0.580836,-0.0646 -1.5282803,-0.11307 -2.112665,-0.10743 z m -8.55566959,2.32733 c -2.44240381,1.39799 -4.55765001,3.37187 -6.08501941,5.73589 -0.3171424,0.49086 -0.072021,0.90648 0.5124799,0.90645 3.2971384,-1.1e-4 6.5942472,-3.2e-4 9.891386,-4.4e-4 0.5845013,-2e-5 1.4143419,-0.31346 1.8771438,-0.67034 1.3947984,-1.07555 2.9425551,-1.94757 4.5792753,-2.59739 0.543184,-0.21566 0.558446,-0.55074 0.01937,-0.77664 -2.8391588,-1.18976 -5.817415,-2.30468 -8.6817126,-2.85447 -0.5738918,-0.11015 -1.1188578,-0.18383 -1.1793956,-0.24129 l 0,-4e-5 z m 16.13644859,3.91701 c -0.447385,0.0453 -0.376692,0.29819 0.137922,0.57518 3.554419,1.91313 7.069403,5.33977 9.847113,12.13348 0.221201,0.54101 0.441895,0.5132 0.468681,-0.0706 0.180941,-3.94362 -0.965014,-7.94068 -3.218123,-11.1833 -0.33348,-0.47994 -1.083832,-0.98852 -1.653569,-1.11862 -1.137796,-0.2598 -2.301738,-0.39965 -3.468403,-0.42245 -0.584298,-0.0114 -1.532183,0.0274 -2.113621,0.0863 z m -2.722882,0.49402 c -1.242292,0.32822 -2.44795,0.79331 -3.585533,1.39135 -0.5172725,0.27194 -1.0910917,0.86181 -0.91515,0.84258 5.867554,0.40567 10.503658,2.59281 13.860687,6.05313 0.40696,0.41948 1.025106,1.13865 1.387738,1.59702 0.140834,0.17802 0.279391,0.35812 0.414933,0.54049 0.348594,0.46901 0.416078,0.43287 0.162966,-0.094 -2.684074,-5.58668 -5.895551,-8.40666 -9.124966,-10.03018 -0.522153,-0.2625 -1.053292,-0.48897 -1.169913,-0.53976 l -2e-6,3e-5 z"
67
+ transform="rotate(-120,2.1867408,112.92166)" /><path
68
+ id="polyline12-3-6-4-6-3"
69
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
70
+ d="m 8.822073,128.83893 c -0.6361326,0.006 -1.2719273,0.0473 -1.9038781,0.12464 -0.5800689,0.071 -1.5135609,0.24033 -2.0816397,0.37749 -0.6492005,0.15675 -1.2885666,0.3521 -1.9146076,0.58348 -0.5481631,0.20259 -0.5131347,0.47336 0.058538,0.59493 2.9509899,0.62754 5.9711398,1.80027 8.8163284,3.0101 0.537817,0.22869 1.426809,0.28143 1.995848,0.14819 1.958682,-0.45863 3.987694,-0.614 5.991774,-0.43805 0.582179,0.0511 0.702175,-0.19834 0.245489,-0.56299 -2.595508,-2.07238 -5.795766,-3.36342 -9.095187,-3.73036 -0.580836,-0.0646 -1.5282803,-0.11307 -2.112665,-0.10743 z m -8.55566959,2.32733 c -2.44240381,1.39799 -4.55765001,3.37187 -6.08501941,5.73589 -0.3171424,0.49086 -0.072021,0.90648 0.5124799,0.90645 3.2971384,-1.1e-4 6.5942472,-3.2e-4 9.891386,-4.4e-4 0.5845013,-2e-5 1.4143419,-0.31346 1.8771438,-0.67034 1.3947984,-1.07555 2.9425551,-1.94757 4.5792753,-2.59739 0.543184,-0.21566 0.558446,-0.55074 0.01937,-0.77664 -2.8391588,-1.18976 -5.817415,-2.30468 -8.6817126,-2.85447 -0.5738918,-0.11015 -1.1188578,-0.18383 -1.1793956,-0.24129 l 0,-4e-5 z m 16.13644859,3.91701 c -0.447385,0.0453 -0.376692,0.29819 0.137922,0.57518 3.554419,1.91313 7.069403,5.33977 9.847113,12.13348 0.221201,0.54101 0.441895,0.5132 0.468681,-0.0706 0.180941,-3.94362 -0.965014,-7.94068 -3.218123,-11.1833 -0.33348,-0.47994 -1.083832,-0.98852 -1.653569,-1.11862 -1.137796,-0.2598 -2.301738,-0.39965 -3.468403,-0.42245 -0.584298,-0.0114 -1.532183,0.0274 -2.113621,0.0863 z m -2.722882,0.49402 c -1.242292,0.32822 -2.44795,0.79331 -3.585533,1.39135 -0.5172725,0.27194 -1.0910917,0.86181 -0.91515,0.84258 5.867554,0.40567 10.503658,2.59281 13.860687,6.05313 0.40696,0.41948 1.025106,1.13865 1.387738,1.59702 0.140834,0.17802 0.279391,0.35812 0.414933,0.54049 0.348594,0.46901 0.416078,0.43287 0.162966,-0.094 -2.684074,-5.58668 -5.895551,-8.40666 -9.124966,-10.03018 -0.522153,-0.2625 -1.053292,-0.48897 -1.169913,-0.53976 l -2e-6,3e-5 z"
71
+ transform="rotate(180,23.245443,115.8681)" /><path
72
+ id="polyline12-3-6-4-6-3-8"
73
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
74
+ d="m 8.822073,128.83893 c -0.6361326,0.006 -1.2719273,0.0473 -1.9038781,0.12464 -0.5800689,0.071 -1.5135609,0.24033 -2.0816397,0.37749 -0.6492005,0.15675 -1.2885666,0.3521 -1.9146076,0.58348 -0.5481631,0.20259 -0.5131347,0.47336 0.058538,0.59493 2.9509899,0.62754 5.9711398,1.80027 8.8163284,3.0101 0.537817,0.22869 1.426809,0.28143 1.995848,0.14819 1.958682,-0.45863 3.987694,-0.614 5.991774,-0.43805 0.582179,0.0511 0.702175,-0.19834 0.245489,-0.56299 -2.595508,-2.07238 -5.795766,-3.36342 -9.095187,-3.73036 -0.580836,-0.0646 -1.5282803,-0.11307 -2.112665,-0.10743 z m -8.55566959,2.32733 c -2.44240381,1.39799 -4.55765001,3.37187 -6.08501941,5.73589 -0.3171424,0.49086 -0.072021,0.90648 0.5124799,0.90645 3.2971384,-1.1e-4 6.5942472,-3.2e-4 9.891386,-4.4e-4 0.5845013,-2e-5 1.4143419,-0.31346 1.8771438,-0.67034 1.3947984,-1.07555 2.9425551,-1.94757 4.5792753,-2.59739 0.543184,-0.21566 0.558446,-0.55074 0.01937,-0.77664 -2.8391588,-1.18976 -5.817415,-2.30468 -8.6817126,-2.85447 -0.5738918,-0.11015 -1.1188578,-0.18383 -1.1793956,-0.24129 l 0,-4e-5 z m 16.13644859,3.91701 c -0.447385,0.0453 -0.376692,0.29819 0.137922,0.57518 3.554419,1.91313 7.069403,5.33977 9.847113,12.13348 0.221201,0.54101 0.441895,0.5132 0.468681,-0.0706 0.180941,-3.94362 -0.965014,-7.94068 -3.218123,-11.1833 -0.33348,-0.47994 -1.083832,-0.98852 -1.653569,-1.11862 -1.137796,-0.2598 -2.301738,-0.39965 -3.468403,-0.42245 -0.584298,-0.0114 -1.532183,0.0274 -2.113621,0.0863 z m -2.722882,0.49402 c -1.242292,0.32822 -2.44795,0.79331 -3.585533,1.39135 -0.5172725,0.27194 -1.0910917,0.86181 -0.91515,0.84258 5.867554,0.40567 10.503658,2.59281 13.860687,6.05313 0.40696,0.41948 1.025106,1.13865 1.387738,1.59702 0.140834,0.17802 0.279391,0.35812 0.414933,0.54049 0.348594,0.46901 0.416078,0.43287 0.162966,-0.094 -2.684074,-5.58668 -5.895551,-8.40666 -9.124966,-10.03018 -0.522153,-0.2625 -1.053292,-0.48897 -1.169913,-0.53976 l -2e-6,3e-5 z"
75
+ transform="rotate(120,44.303623,118.81435)" /><path
76
+ id="polyline12-3-6-4-6-3-8-9"
77
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
78
+ d="m 8.822073,128.83893 c -0.6361326,0.006 -1.2719273,0.0473 -1.9038781,0.12464 -0.5800689,0.071 -1.5135609,0.24033 -2.0816397,0.37749 -0.6492005,0.15675 -1.2885666,0.3521 -1.9146076,0.58348 -0.5481631,0.20259 -0.5131347,0.47336 0.058538,0.59493 2.9509899,0.62754 5.9711398,1.80027 8.8163284,3.0101 0.537817,0.22869 1.426809,0.28143 1.995848,0.14819 1.958682,-0.45863 3.987694,-0.614 5.991774,-0.43805 0.582179,0.0511 0.702175,-0.19834 0.245489,-0.56299 -2.595508,-2.07238 -5.795766,-3.36342 -9.095187,-3.73036 -0.580836,-0.0646 -1.5282803,-0.11307 -2.112665,-0.10743 z m -8.55566959,2.32733 c -2.44240381,1.39799 -4.55765001,3.37187 -6.08501941,5.73589 -0.3171424,0.49086 -0.072021,0.90648 0.5124799,0.90645 3.2971384,-1.1e-4 6.5942472,-3.2e-4 9.891386,-4.4e-4 0.5845013,-2e-5 1.4143419,-0.31346 1.8771438,-0.67034 1.3947984,-1.07555 2.9425551,-1.94757 4.5792753,-2.59739 0.543184,-0.21566 0.558446,-0.55074 0.01937,-0.77664 -2.8391588,-1.18976 -5.817415,-2.30468 -8.6817126,-2.85447 -0.5738918,-0.11015 -1.1188578,-0.18383 -1.1793956,-0.24129 l 0,-4e-5 z m 16.13644859,3.91701 c -0.447385,0.0453 -0.376692,0.29819 0.137922,0.57518 3.554419,1.91313 7.069403,5.33977 9.847113,12.13348 0.221201,0.54101 0.441895,0.5132 0.468681,-0.0706 0.180941,-3.94362 -0.965014,-7.94068 -3.218123,-11.1833 -0.33348,-0.47994 -1.083832,-0.98852 -1.653569,-1.11862 -1.137796,-0.2598 -2.301738,-0.39965 -3.468403,-0.42245 -0.584298,-0.0114 -1.532183,0.0274 -2.113621,0.0863 z m -2.722882,0.49402 c -1.242292,0.32822 -2.44795,0.79331 -3.585533,1.39135 -0.5172725,0.27194 -1.0910917,0.86181 -0.91515,0.84258 5.867554,0.40567 10.503658,2.59281 13.860687,6.05313 0.40696,0.41948 1.025106,1.13865 1.387738,1.59702 0.140834,0.17802 0.279391,0.35812 0.414933,0.54049 0.348594,0.46901 0.416078,0.43287 0.162966,-0.094 -2.684074,-5.58668 -5.895551,-8.40666 -9.124966,-10.03018 -0.522153,-0.2625 -1.053292,-0.48897 -1.169913,-0.53976 l -2e-6,3e-5 z"
79
+ transform="rotate(60,86.420319,124.70595)" /></g></svg>
Binary file