streamdown 0.15.0__tar.gz → 0.17.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.
Files changed (65) hide show
  1. {streamdown-0.15.0 → streamdown-0.17.0}/PKG-INFO +27 -28
  2. {streamdown-0.15.0 → streamdown-0.17.0}/README.md +26 -27
  3. streamdown-0.17.0/assets/logo.png +0 -0
  4. streamdown-0.17.0/assets/logo.svg +116 -0
  5. {streamdown-0.15.0 → streamdown-0.17.0}/pyproject.toml +1 -1
  6. streamdown-0.17.0/requirements.txt +5 -0
  7. {streamdown-0.15.0 → streamdown-0.17.0}/streamdown/sd.py +102 -62
  8. streamdown-0.17.0/streamdown/ss +21 -0
  9. streamdown-0.17.0/tests/backtick-with-post-spaces.md +0 -0
  10. streamdown-0.17.0/tests/block.md +21 -0
  11. streamdown-0.17.0/tests/broken-example.md +14 -0
  12. {streamdown-0.15.0 → streamdown-0.17.0}/tests/chunk-buffer.sh +1 -1
  13. streamdown-0.17.0/tests/escape.md +7 -0
  14. streamdown-0.17.0/tests/managerie.md +328 -0
  15. {streamdown-0.15.0 → streamdown-0.17.0}/tests/markdown.md +2 -2
  16. {streamdown-0.15.0 → streamdown-0.17.0}/tests/outline.md +2 -0
  17. streamdown-0.17.0/tests/pvgo_512.jpg +0 -0
  18. {streamdown-0.15.0 → streamdown-0.17.0/tests}/pythonvgo.md +37 -37
  19. streamdown-0.15.0/streamdown/scrape/file_0.py +0 -22
  20. streamdown-0.15.0/streamdown/scrape/file_1.js +0 -27
  21. streamdown-0.15.0/streamdown/scrape/file_2.cpp +0 -23
  22. streamdown-0.15.0/streamdown/tt.mds +0 -11
  23. streamdown-0.15.0/tests/block.md +0 -10
  24. streamdown-0.15.0/tests/line.md +0 -13
  25. streamdown-0.15.0/tests/new.md +0 -3
  26. streamdown-0.15.0/tests/sd.log +0 -0
  27. {streamdown-0.15.0 → streamdown-0.17.0}/.gitignore +0 -0
  28. {streamdown-0.15.0 → streamdown-0.17.0}/.vimrc +0 -0
  29. {streamdown-0.15.0 → streamdown-0.17.0}/24-bit-color.sh +0 -0
  30. {streamdown-0.15.0 → streamdown-0.17.0}/LICENSE.MIT +0 -0
  31. {streamdown-0.15.0 → streamdown-0.17.0}/configurable.png +0 -0
  32. {streamdown-0.15.0 → streamdown-0.17.0}/copyable.png +0 -0
  33. {streamdown-0.15.0 → streamdown-0.17.0}/dunder.png +0 -0
  34. {streamdown-0.15.0 → streamdown-0.17.0}/error.txt +0 -0
  35. {streamdown-0.15.0 → streamdown-0.17.0}/newdir/file_0.py +0 -0
  36. {streamdown-0.15.0 → streamdown-0.17.0}/newdir/file_1.rb +0 -0
  37. {streamdown-0.15.0 → streamdown-0.17.0}/newdir/file_2.jl +0 -0
  38. {streamdown-0.15.0 → streamdown-0.17.0}/passthrough.py +0 -0
  39. {streamdown-0.15.0 → streamdown-0.17.0}/python-go.png +0 -0
  40. {streamdown-0.15.0 → streamdown-0.17.0}/somelog.txt +0 -0
  41. {streamdown-0.15.0 → streamdown-0.17.0}/streamdown/__init__.py +0 -0
  42. {streamdown-0.15.0 → streamdown-0.17.0}/streamdown/plugins/README.md +0 -0
  43. {streamdown-0.15.0 → streamdown-0.17.0}/streamdown/plugins/latex.py +0 -0
  44. {streamdown-0.15.0 → streamdown-0.17.0}/table.png +0 -0
  45. {streamdown-0.15.0 → streamdown-0.17.0}/temp.py +0 -0
  46. {streamdown-0.15.0 → streamdown-0.17.0}/test.py +0 -0
  47. {streamdown-0.15.0 → streamdown-0.17.0}/test_input.md +0 -0
  48. {streamdown-0.15.0 → streamdown-0.17.0}/tests/README.md +0 -0
  49. {streamdown-0.15.0 → streamdown-0.17.0}/tests/code.md +0 -0
  50. {streamdown-0.15.0 → streamdown-0.17.0}/tests/example.md +0 -0
  51. {streamdown-0.15.0 → streamdown-0.17.0}/tests/fizzbuzz.md +0 -0
  52. {streamdown-0.15.0 → streamdown-0.17.0}/tests/inline.md +0 -0
  53. {streamdown-0.15.0 → streamdown-0.17.0}/tests/line-buffer.sh +0 -0
  54. {streamdown-0.15.0 → streamdown-0.17.0}/tests/line-wrap.md +0 -0
  55. {streamdown-0.15.0 → streamdown-0.17.0}/tests/links.md +0 -0
  56. {streamdown-0.15.0 → streamdown-0.17.0}/tests/longer-example.md +0 -0
  57. {streamdown-0.15.0 → streamdown-0.17.0}/tests/mandlebrot.md +0 -0
  58. {streamdown-0.15.0 → streamdown-0.17.0}/tests/nested-example.md +0 -0
  59. {streamdown-0.15.0 → streamdown-0.17.0}/tests/table-break.md +0 -0
  60. {streamdown-0.15.0 → streamdown-0.17.0}/tests/table.md +0 -0
  61. {streamdown-0.15.0 → streamdown-0.17.0}/tests/table_test.md +0 -0
  62. {streamdown-0.15.0 → streamdown-0.17.0}/tests/test.md +0 -0
  63. {streamdown-0.15.0 → streamdown-0.17.0}/tests/test_input.md +0 -0
  64. {streamdown-0.15.0 → streamdown-0.17.0}/tests/white-space-code.md +0 -0
  65. {streamdown-0.15.0 → streamdown-0.17.0}/tests/wm.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: streamdown
3
- Version: 0.15.0
3
+ Version: 0.17.0
4
4
  Summary: A streaming markdown renderer for modern terminals with syntax highlighting
5
5
  Project-URL: Homepage, https://github.com/kristopolous/Streamdown
6
6
  Project-URL: Bug Tracker, https://github.com/kristopolous/Streamdown/issues
@@ -27,46 +27,49 @@ Requires-Dist: term-image
27
27
  Requires-Dist: toml
28
28
  Description-Content-Type: text/markdown
29
29
 
30
- # Streamdown
30
+ <p align="center">
31
+ <img src=https://github.com/user-attachments/assets/0468eac0-2a00-4e98-82ca-09e6ac679357/>
32
+ <br/>
33
+ <a href=https://pypi.org/project/streamdown><img src=https://badge.fury.io/py/streamdown.svg/></a>
34
+ </p>
31
35
 
32
- [![PyPI version](https://badge.fury.io/py/streamdown.svg)](https://badge.fury.io/py/streamdown)
36
+ **The streaming markdown renderer for the terminal that rocks**
33
37
 
34
- Streamdown is the streaming markdown renderer for the terminal that rocks.
35
- This will work with [simonw's llm](https://github.com/simonw/llm). You even get full readline and keyboard navigation support.
36
-
37
- It's fully streaming and does not block
38
+ Streamdown works with [simonw's llm](https://github.com/simonw/llm) along with any other streaming markdown. You even get full readline and keyboard navigation support.
39
+ ```bash
40
+ $ pip install streamdown
41
+ ```
38
42
  ![Streamdown is Amazing](https://github.com/user-attachments/assets/268cb340-78cc-4df0-a773-c5ac95eceeeb)
39
43
 
40
44
  ### Provides clean copyable code for long code lines
41
- You may have noticed that other, *inferior* renderers will inject line breaks when copying code that wraps around. We're better and now, you can be as well.
45
+ Some *inferior* renderers inject line breaks when copying code that wraps around. We're better and now you are too!
42
46
  ![Handle That Mandle](https://github.com/user-attachments/assets/a27aa70c-f691-4796-84f0-c2eb18c7de23)
47
+ **Tip**: You can make things prettier if you don't mind if this guarantee is broken. See the `PrettyBroken` flag below!
43
48
 
44
49
  ### Supports images
45
50
  Here's kitty and alacritty. Try to do that in glow...
46
- ![doggie](https://github.com/user-attachments/assets/9a392929-b6c2-4204-b257-e09305acb7af)
51
+ ![doggie](https://github.com/user-attachments/assets/81c43983-68cd-40c1-b1d5-aa3a52004504)
47
52
 
48
- ### Does OSC 8 links for modern terminals (and optionally OSC 52 for clipboard)
53
+ ### Supports hyperlinks (OSC 8) and clipboard (OSC 52)
49
54
  [links.webm](https://github.com/user-attachments/assets/a5f71791-7c58-4183-ad3b-309f470c08a3)
50
55
 
51
- ### Tables are carefully supported
56
+ ### Supports tables
52
57
  ![table](https://github.com/user-attachments/assets/dbe3d13e-6bac-4f45-bf30-f1857ed98898)
53
58
 
54
59
  As well as everything else...
55
-
56
60
  ![dunder](https://github.com/user-attachments/assets/d41d7fec-6dec-4387-b53d-f2098f269a5e)
57
61
 
58
62
  ### Colors are highly (and quickly) configurable for people who care a lot, or just a little.
59
- ![configurable](https://github.com/user-attachments/assets/04b36749-4bb8-4c14-9758-84eb6e19b704)
63
+ ![configurable](https://github.com/user-attachments/assets/19ca2ec9-8ea1-4a79-87ca-8352789269fe)
60
64
 
61
65
  ### Has a [Plugin](https://github.com/kristopolous/Streamdown/tree/main/streamdown/plugins) system to extend the parser and renderer.
62
66
  For instance, here is the [latex plugin](https://github.com/kristopolous/Streamdown/blob/main/streamdown/plugins/latex.py) doing math inside a table:
63
67
  ![calc](https://github.com/user-attachments/assets/0b0027ca-8ef0-4b4a-b4ae-e36ff623a683)
64
68
 
65
69
 
66
- ## Configuration
70
+ ## TOML Configuration
67
71
 
68
-
69
- Streamdown uses a TOML configuration file located at `~/.config/streamdown/config.toml` (following the XDG Base Directory Specification). If this file does not exist upon first run, it will be created with default values.
72
+ It's located at `~/.config/streamdown/config.toml` (following the XDG Base Directory Specification). If this file does not exist upon first run, it will be created with default values.
70
73
 
71
74
  Here are the sections:
72
75
 
@@ -84,12 +87,15 @@ Defines the base Hue (H), Saturation (S), and Value (V) from which all other pal
84
87
  * `Margin` (integer, default: `2`): The left and right indent for the output.
85
88
  * `Width` (integer, default: `0`): Along with the `Margin`, `Width` specifies the base width of the content, which when set to 0, means use the terminal width. See [#6](https://github.com/kristopolous/Streamdown/issues/6) for more details
86
89
  * `PrettyPad` (boolean, default: `false`): Uses a unicode vertical pad trick to add a half height background to code blocks. This makes copy/paste have artifacts. See [#2](https://github.com/kristopolous/Streamdown/issues/2). I like it on. But that's just me
90
+ * `PrettyBroken` (boolean, default: `false`): This will break the copy/paste assurance above. The output is much prettier, but it's also broken. So it's pretty broken. Works nicely with PrettyPad.
87
91
  * `ListIndent` (integer, default: `2`): This is the recursive indent for the list styles.
88
92
  * `Syntax` (string, default `monokai`): This is the syntax [highlighting theme which come via pygments](https://pygments.org/styles/).
89
93
 
90
94
  Example:
91
95
  ```toml
92
96
  [style]
97
+ PrettyPad = true
98
+ PrettyBroken = true
93
99
  HSV = [0.7, 0.5, 0.5]
94
100
  Dark = { H = 1.0, S = 1.2, V = 0.25 } # Make dark elements less saturated and darker
95
101
  Symbol = { H = 1.0, S = 1.8, V = 1.8 } # Make symbols more vibrant
@@ -102,19 +108,16 @@ Controls optional features:
102
108
  * `CodeSpaces` (boolean, default: `true`): Enables detection of code blocks indented with 4 spaces. Set to `false` to disable this detection method (triple-backtick blocks still work).
103
109
  * `Clipboard` (boolean, default: `true`): Enables copying the last code block encountered to the system clipboard using OSC 52 escape sequences upon exit. Set to `false` to disable.
104
110
  * `Logging` (boolean, default: `false`): Enables logging to tmpdir (/tmp/sd) of the raw markdown for debugging and bug reporting. The logging uses an emoji as a record separator so the actual streaming delays can be simulated and replayed. If you use the `filename` based invocation, that is to say, `sd <filename>`, this type of logging is always off.
105
- * `Timeout` (float, default: `0.5`): This is a workaround to the [buffer parsing bugs](https://github.com/kristopolous/Streamdown/issues/4). By increasing the select timeout, the parser loop only gets triggerd on newline which means that having to resume from things like a code block, inside a list, inside a table, between buffers, without breaking formatting doesn't need to be done. I assert (2025-04-09) this is no longer a bug. Feel free to turn on `Logging` and post an issue if you find a repeatable one.
111
+ * `Savebrace` (boolean, default: `true`): Saves the code blocks of a conversation to the append file `/tmp/sd/savebrace` so you can fzf or whatever you want through it. See how it's used in my [llmehelp](https://github.com/kristopolous/llmehelp) scripts, specifically `screen-query` and `sd-picker`.
106
112
 
107
113
  Example:
108
114
  ```toml
109
115
  [features]
110
116
  CodeSpaces = false
111
117
  Clipboard = false
112
- Margin = 4
113
- Width = 120
114
- Timeout = 1.0
115
118
  ```
116
119
 
117
- ## Invocation
120
+ ## Command Line
118
121
  The most exciting feature here is `--exec` with it you can do full readline support like this:
119
122
 
120
123
  $ sd --exec "llm chat"
@@ -145,7 +148,7 @@ Do this
145
148
  $ ./streamdown/sd.py tests/*md
146
149
 
147
150
  ## Install from source
148
- After the git clone least one of these should work, hopefully. it's using the modern uv pip tool.
151
+ After the git clone least one of these should work, hopefully. it's using the modern uv pip tool but is also backwards compatible to the `pip3 install -r requirements.txt` flow.
149
152
 
150
153
  $ pipx install -e .
151
154
  $ pip install -e .
@@ -153,9 +156,5 @@ After the git clone least one of these should work, hopefully. it's using the mo
153
156
 
154
157
  ### Future work
155
158
 
156
- #### CSS
157
- I'm really considering using `tinycss2` and making an actual stylesheet engine. This is related to another problem - getting a modern HTML renderer in the terminal that is actually navigable. I *think* it's probably a separate project.
158
-
159
- #### scrape
160
- This is already partially implemented. The idea is every code block can get extracted and put in a directory so you can have a conversation to generate every piece of a project, similar to Aider, Claude or Goose, but in the most hands-off yet still convenient way possible.
161
-
159
+ #### Glow styles
160
+ I'm going to try to be compatible with other popular markdown styles to help for a smoother transition. Glow compatible json sheets is on my radar. There's also mdless and frogmouth. Might be others
@@ -1,43 +1,46 @@
1
- # Streamdown
1
+ <p align="center">
2
+ <img src=https://github.com/user-attachments/assets/0468eac0-2a00-4e98-82ca-09e6ac679357/>
3
+ <br/>
4
+ <a href=https://pypi.org/project/streamdown><img src=https://badge.fury.io/py/streamdown.svg/></a>
5
+ </p>
2
6
 
3
- [![PyPI version](https://badge.fury.io/py/streamdown.svg)](https://badge.fury.io/py/streamdown)
7
+ **The streaming markdown renderer for the terminal that rocks**
4
8
 
5
- Streamdown is the streaming markdown renderer for the terminal that rocks.
6
- This will work with [simonw's llm](https://github.com/simonw/llm). You even get full readline and keyboard navigation support.
7
-
8
- It's fully streaming and does not block
9
+ Streamdown works with [simonw's llm](https://github.com/simonw/llm) along with any other streaming markdown. You even get full readline and keyboard navigation support.
10
+ ```bash
11
+ $ pip install streamdown
12
+ ```
9
13
  ![Streamdown is Amazing](https://github.com/user-attachments/assets/268cb340-78cc-4df0-a773-c5ac95eceeeb)
10
14
 
11
15
  ### Provides clean copyable code for long code lines
12
- You may have noticed that other, *inferior* renderers will inject line breaks when copying code that wraps around. We're better and now, you can be as well.
16
+ Some *inferior* renderers inject line breaks when copying code that wraps around. We're better and now you are too!
13
17
  ![Handle That Mandle](https://github.com/user-attachments/assets/a27aa70c-f691-4796-84f0-c2eb18c7de23)
18
+ **Tip**: You can make things prettier if you don't mind if this guarantee is broken. See the `PrettyBroken` flag below!
14
19
 
15
20
  ### Supports images
16
21
  Here's kitty and alacritty. Try to do that in glow...
17
- ![doggie](https://github.com/user-attachments/assets/9a392929-b6c2-4204-b257-e09305acb7af)
22
+ ![doggie](https://github.com/user-attachments/assets/81c43983-68cd-40c1-b1d5-aa3a52004504)
18
23
 
19
- ### Does OSC 8 links for modern terminals (and optionally OSC 52 for clipboard)
24
+ ### Supports hyperlinks (OSC 8) and clipboard (OSC 52)
20
25
  [links.webm](https://github.com/user-attachments/assets/a5f71791-7c58-4183-ad3b-309f470c08a3)
21
26
 
22
- ### Tables are carefully supported
27
+ ### Supports tables
23
28
  ![table](https://github.com/user-attachments/assets/dbe3d13e-6bac-4f45-bf30-f1857ed98898)
24
29
 
25
30
  As well as everything else...
26
-
27
31
  ![dunder](https://github.com/user-attachments/assets/d41d7fec-6dec-4387-b53d-f2098f269a5e)
28
32
 
29
33
  ### Colors are highly (and quickly) configurable for people who care a lot, or just a little.
30
- ![configurable](https://github.com/user-attachments/assets/04b36749-4bb8-4c14-9758-84eb6e19b704)
34
+ ![configurable](https://github.com/user-attachments/assets/19ca2ec9-8ea1-4a79-87ca-8352789269fe)
31
35
 
32
36
  ### Has a [Plugin](https://github.com/kristopolous/Streamdown/tree/main/streamdown/plugins) system to extend the parser and renderer.
33
37
  For instance, here is the [latex plugin](https://github.com/kristopolous/Streamdown/blob/main/streamdown/plugins/latex.py) doing math inside a table:
34
38
  ![calc](https://github.com/user-attachments/assets/0b0027ca-8ef0-4b4a-b4ae-e36ff623a683)
35
39
 
36
40
 
37
- ## Configuration
41
+ ## TOML Configuration
38
42
 
39
-
40
- Streamdown uses a TOML configuration file located at `~/.config/streamdown/config.toml` (following the XDG Base Directory Specification). If this file does not exist upon first run, it will be created with default values.
43
+ It's located at `~/.config/streamdown/config.toml` (following the XDG Base Directory Specification). If this file does not exist upon first run, it will be created with default values.
41
44
 
42
45
  Here are the sections:
43
46
 
@@ -55,12 +58,15 @@ Defines the base Hue (H), Saturation (S), and Value (V) from which all other pal
55
58
  * `Margin` (integer, default: `2`): The left and right indent for the output.
56
59
  * `Width` (integer, default: `0`): Along with the `Margin`, `Width` specifies the base width of the content, which when set to 0, means use the terminal width. See [#6](https://github.com/kristopolous/Streamdown/issues/6) for more details
57
60
  * `PrettyPad` (boolean, default: `false`): Uses a unicode vertical pad trick to add a half height background to code blocks. This makes copy/paste have artifacts. See [#2](https://github.com/kristopolous/Streamdown/issues/2). I like it on. But that's just me
61
+ * `PrettyBroken` (boolean, default: `false`): This will break the copy/paste assurance above. The output is much prettier, but it's also broken. So it's pretty broken. Works nicely with PrettyPad.
58
62
  * `ListIndent` (integer, default: `2`): This is the recursive indent for the list styles.
59
63
  * `Syntax` (string, default `monokai`): This is the syntax [highlighting theme which come via pygments](https://pygments.org/styles/).
60
64
 
61
65
  Example:
62
66
  ```toml
63
67
  [style]
68
+ PrettyPad = true
69
+ PrettyBroken = true
64
70
  HSV = [0.7, 0.5, 0.5]
65
71
  Dark = { H = 1.0, S = 1.2, V = 0.25 } # Make dark elements less saturated and darker
66
72
  Symbol = { H = 1.0, S = 1.8, V = 1.8 } # Make symbols more vibrant
@@ -73,19 +79,16 @@ Controls optional features:
73
79
  * `CodeSpaces` (boolean, default: `true`): Enables detection of code blocks indented with 4 spaces. Set to `false` to disable this detection method (triple-backtick blocks still work).
74
80
  * `Clipboard` (boolean, default: `true`): Enables copying the last code block encountered to the system clipboard using OSC 52 escape sequences upon exit. Set to `false` to disable.
75
81
  * `Logging` (boolean, default: `false`): Enables logging to tmpdir (/tmp/sd) of the raw markdown for debugging and bug reporting. The logging uses an emoji as a record separator so the actual streaming delays can be simulated and replayed. If you use the `filename` based invocation, that is to say, `sd <filename>`, this type of logging is always off.
76
- * `Timeout` (float, default: `0.5`): This is a workaround to the [buffer parsing bugs](https://github.com/kristopolous/Streamdown/issues/4). By increasing the select timeout, the parser loop only gets triggerd on newline which means that having to resume from things like a code block, inside a list, inside a table, between buffers, without breaking formatting doesn't need to be done. I assert (2025-04-09) this is no longer a bug. Feel free to turn on `Logging` and post an issue if you find a repeatable one.
82
+ * `Savebrace` (boolean, default: `true`): Saves the code blocks of a conversation to the append file `/tmp/sd/savebrace` so you can fzf or whatever you want through it. See how it's used in my [llmehelp](https://github.com/kristopolous/llmehelp) scripts, specifically `screen-query` and `sd-picker`.
77
83
 
78
84
  Example:
79
85
  ```toml
80
86
  [features]
81
87
  CodeSpaces = false
82
88
  Clipboard = false
83
- Margin = 4
84
- Width = 120
85
- Timeout = 1.0
86
89
  ```
87
90
 
88
- ## Invocation
91
+ ## Command Line
89
92
  The most exciting feature here is `--exec` with it you can do full readline support like this:
90
93
 
91
94
  $ sd --exec "llm chat"
@@ -116,7 +119,7 @@ Do this
116
119
  $ ./streamdown/sd.py tests/*md
117
120
 
118
121
  ## Install from source
119
- After the git clone least one of these should work, hopefully. it's using the modern uv pip tool.
122
+ After the git clone least one of these should work, hopefully. it's using the modern uv pip tool but is also backwards compatible to the `pip3 install -r requirements.txt` flow.
120
123
 
121
124
  $ pipx install -e .
122
125
  $ pip install -e .
@@ -124,9 +127,5 @@ After the git clone least one of these should work, hopefully. it's using the mo
124
127
 
125
128
  ### Future work
126
129
 
127
- #### CSS
128
- I'm really considering using `tinycss2` and making an actual stylesheet engine. This is related to another problem - getting a modern HTML renderer in the terminal that is actually navigable. I *think* it's probably a separate project.
129
-
130
- #### scrape
131
- This is already partially implemented. The idea is every code block can get extracted and put in a directory so you can have a conversation to generate every piece of a project, similar to Aider, Claude or Goose, but in the most hands-off yet still convenient way possible.
132
-
130
+ #### Glow styles
131
+ I'm going to try to be compatible with other popular markdown styles to help for a smoother transition. Glow compatible json sheets is on my radar. There's also mdless and frogmouth. Might be others
Binary file
@@ -0,0 +1,116 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: visioncortex VTracer -->
3
+
4
+ <svg
5
+ id="svg"
6
+ version="1.1"
7
+ style="display:block"
8
+ viewBox="0 0 389.90754 91.487504"
9
+ sodipodi:docname="logo.svg"
10
+ width="389.90753"
11
+ height="91.487503"
12
+ inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
13
+ inkscape:export-filename="logo.png"
14
+ inkscape:export-xdpi="96"
15
+ inkscape:export-ydpi="96"
16
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
17
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
18
+ xmlns="http://www.w3.org/2000/svg"
19
+ xmlns:svg="http://www.w3.org/2000/svg">
20
+ <defs
21
+ id="defs14" />
22
+ <sodipodi:namedview
23
+ id="namedview14"
24
+ pagecolor="#ffffff"
25
+ bordercolor="#000000"
26
+ borderopacity="0.25"
27
+ inkscape:showpageshadow="2"
28
+ inkscape:pageopacity="0.0"
29
+ inkscape:pagecheckerboard="0"
30
+ inkscape:deskcolor="#d1d1d1"
31
+ inkscape:zoom="7.6562156"
32
+ inkscape:cx="84.702421"
33
+ inkscape:cy="45.126733"
34
+ inkscape:window-width="1239"
35
+ inkscape:window-height="1080"
36
+ inkscape:window-x="515"
37
+ inkscape:window-y="-2"
38
+ inkscape:window-maximized="0"
39
+ inkscape:current-layer="svg" />
40
+ <path
41
+ d="m 53.95,0 h 3.9 l 2.925,0.65 2.4375,0.8125 2.6,1.1375 2.6,1.4625 2.1125,1.4625 1.95,1.4625 1.625,1.4625 1.95,1.7875 1.1375,1.1375 1.1375,1.3 2.1125,2.6 1.3,1.7875 1.625,2.1125 0.975,1.3 1.3,0.65 2.6,0.975 5.2,2.6 2.925,1.7875 2.7625,1.95 2.1125,1.7875 1.7875,1.4625 2.925,2.925 1.4625,1.7875 1.3,1.4625 1.95,2.7625 1.7875,2.925 1.95,3.7375 2.1125,5.3625 1.1375,4.0625 0.975,3.4125 1.4625,2.4375 0.8125,1.625 0.325,1.1375 0.1625,2.1125 -0.65,2.6 -1.4625,2.6 -1.4625,1.7875 -1.7875,1.7875 -2.7625,2.1125 -2.1125,1.3 -3.4125,1.95 -2.6,1.3 -3.4125,1.4625 -3.4125,1.1375 -4.55,0.975 -4.225,0.65 -5.0375,0.325 -4.225,-0.1625 -2.7625,-0.325 -2.4375,1.4625 -2.6,1.4625 -2.7625,0.975 -2.925,0.65 H 62.075 L 60.125,91 57.85,89.8625 56.7125,88.725 55.9,87.1 l -0.4875,-2.4375 -3.0875,-0.975 -1.7875,-0.975 -1.625,-1.3 L 47.45,79.3 46.8,77.5125 46.475,75.4 v -2.925 l -1.4625,-1.7875 -1.95,-2.275 -1.3,-1.625 -1.95,-2.275 -1.4625,-1.625 -1.1375,-1.3 L 35.75,59.9625 34.2875,58.3375 32.825,56.55 32.0125,55.7375 v -0.325 h -0.325 l -1.1375,-1.3 -1.3,-0.65 -1.625,0.1625 -1.95,0.8125 -2.275,1.3 -3.7375,1.7875 -3.25,1.4625 -3.575,1.3 -3.0875,0.65 H 6.175 L 4.0625,60.45 3.0875,59.9625 2.1125,58.825 1.4625,57.0375 V 54.925 L 1.95,52.4875 3.25,48.5875 4.875,44.85 6.6625,41.4375 7.8,39.325 l -0.1625,-1.3 -1.3,-2.6 -2.275,-4.55 -1.95,-4.55 L 0.975,22.9125 0.325,20.15 0,17.7125 V 14.625 l 0.65,-1.7875 1.1375,-1.4625 0.975,-0.65 0.8125,-0.1625 h 1.7875 l 2.7625,0.65 2.6,1.1375 2.6,1.4625 2.6,1.7875 2.1125,1.625 2.1125,1.7875 2.4375,2.275 1.95,1.95 1.1375,1.3 2.1125,2.275 1.7875,2.275 c 0.275719,0.499267 0.393174,0.632565 0.65,0.975 l 0.65,0.325 1.1375,0.8125 0.975,0.1625 2.6,-1.1375 2.7625,-1.625 2.6,-1.4625 0.975,-0.4875 v -1.625 l 0.325,-1.95 0.65,-1.3 1.1375,-1.1375 1.7875,-1.1375 1.7875,-1.3 0.325,-0.4875 V 16.25 L 47.125,12.1875 46.9625,10.725 V 7.15 L 47.45,4.7125 48.5875,2.7625 49.725,1.625 52,0.4875 Z"
42
+ style="fill:#fbb034;stroke-width:0.1625"
43
+ id="path1"
44
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
45
+ <path
46
+ d="m 4.0625,13.8125 h 1.3 l 2.1125,0.65 2.7625,1.3 3.9,2.6 1.625,1.3 2.275,1.7875 0.8125,0.8125 4.55,4.55 1.1375,1.3 2.1125,2.4375 1.7875,2.275 0.65,0.8125 1.4625,0.975 0.4875,0.1625 h 2.4375 l 2.6,-1.1375 1.7875,-0.975 3.9,-2.275 4.225,-2.275 L 49.725,26.325 52,25.5125 56.0625,24.375 60.45,23.4 66.1375,22.75 68.575,22.5875 h 6.0125 l 3.4125,0.325 5.0375,0.975 1.7875,0.4875 0.1625,0.65 -2.1125,0.8125 -2.6,1.3 -2.925,2.1125 -2.4375,2.275 -1.1375,1.4625 -1.625,2.1125 -1.625,2.7625 -1.3,2.7625 -0.8125,3.4125 -0.1625,5.3625 -0.325,2.4375 -0.8125,2.6 -1.4625,3.0875 -0.325,1.7875 0.1625,1.95 0.325,1.625 0.325,0.1625 h -0.325 l 0.1625,0.4875 -2.6,-0.65 -1.7875,-0.325 h -4.225 l -2.6,0.4875 -2.1125,0.8125 h -0.325 v 0.325 l -1.4625,0.975 -0.65,0.325 v 0.325 L 49.4,66.625 47.775,68.9 47.45,68.7375 v -0.325 l -0.65,-0.325 -2.1125,-1.95 -1.95,-1.95 L 41.275,62.4 39.65,60.2875 37.8625,58.0125 36.075,55.7375 33.9625,53.1375 32.825,52.1625 32.0125,51.35 30.225,50.2125 29.7375,50.05 h -1.95 l -1.4625,0.325 -2.6,1.4625 -1.625,0.975 -3.4125,1.7875 -3.25,1.3 -3.4125,1.1375 -3.9,0.65 -2.6,-0.1625 -0.65,-0.65 v -1.95 L 5.525,52 l 1.1375,-3.25 0.65,-1.4625 1.3,-2.6 1.95,-3.25 0.65,-1.4625 v -2.1125 l -0.65,-1.625 L 8.775,32.825 7.15,29.7375 6.0125,27.3 4.3875,22.75 3.7375,20.6375 3.4125,18.85 3.25,15.7625 3.575,14.3 Z"
47
+ style="fill:#faaa36;stroke-width:0.1625"
48
+ id="path2" />
49
+ <path
50
+ d="m 53.95,0 h 3.9 l 2.925,0.65 2.4375,0.8125 2.6,1.1375 2.6,1.4625 2.1125,1.4625 1.95,1.4625 1.625,1.4625 1.95,1.7875 1.1375,1.1375 1.1375,1.3 2.1125,2.6 1.3,1.7875 1.625,2.1125 0.975,1.3 1.3,0.65 2.6,0.975 5.2,2.6 2.925,1.7875 2.7625,1.95 2.1125,1.7875 1.7875,1.4625 2.925,2.925 1.4625,1.7875 1.3,1.4625 1.95,2.7625 1.7875,2.925 1.95,3.7375 2.1125,5.3625 1.1375,4.0625 0.975,3.4125 1.4625,2.4375 0.8125,1.625 0.325,1.1375 0.1625,2.1125 -0.65,2.6 -1.4625,2.6 -1.4625,1.7875 -1.7875,1.7875 -2.7625,2.1125 -2.1125,1.3 -3.4125,1.95 -2.6,1.3 -3.4125,1.4625 -3.4125,1.1375 -4.55,0.975 -4.225,0.65 -5.0375,0.325 -4.225,-0.1625 -2.7625,-0.325 -2.4375,1.4625 -2.6,1.4625 -2.7625,0.975 -2.925,0.65 H 62.075 L 60.125,91 57.85,89.8625 56.7125,88.725 55.9,87.1 l -0.4875,-2.4375 -3.0875,-0.975 -1.7875,-0.975 -1.625,-1.3 L 47.45,79.3 46.8,77.5125 46.475,75.4 v -2.925 l -1.4625,-1.7875 -1.95,-2.275 -1.3,-1.625 -1.95,-2.275 -1.4625,-1.625 -1.1375,-1.3 L 35.75,59.9625 34.2875,58.3375 32.825,56.55 32.0125,55.7375 v -0.325 h -0.325 l -1.1375,-1.3 -1.3,-0.65 -1.625,0.1625 -1.95,0.8125 -2.275,1.3 -3.7375,1.7875 -3.25,1.4625 -3.575,1.3 -3.0875,0.65 H 6.175 L 4.0625,60.45 3.0875,59.9625 2.1125,58.825 1.4625,57.0375 V 54.925 L 1.95,52.4875 3.25,48.5875 4.875,44.85 6.6625,41.4375 7.8,39.325 l -0.1625,-1.3 -1.3,-2.6 -2.275,-4.55 -1.95,-4.55 L 0.975,22.9125 0.325,20.15 0,17.7125 V 14.625 l 0.65,-1.7875 1.1375,-1.4625 0.975,-0.65 0.8125,-0.1625 h 1.7875 l 2.7625,0.65 2.6,1.1375 2.6,1.4625 2.6,1.7875 2.1125,1.625 2.1125,1.7875 2.4375,2.275 1.95,1.95 1.1375,1.3 2.1125,2.275 1.7875,2.275 0.325,0.65 c 0.351718,0.267784 0.216666,0.216666 0.325,0.325 l 0.65,0.325 1.1375,0.8125 0.975,0.1625 2.6,-1.1375 2.7625,-1.625 2.6,-1.4625 0.975,-0.4875 v -1.625 l 0.325,-1.95 0.65,-1.3 1.1375,-1.1375 1.7875,-1.1375 1.7875,-1.3 0.325,-0.4875 V 16.25 L 47.125,12.1875 46.9625,10.725 V 7.15 L 47.45,4.7125 48.5875,2.7625 49.725,1.625 52,0.4875 Z M 4.0625,13.8125 3.575,14.3 3.25,16.25 l 0.1625,2.6 0.4875,2.275 1.7875,5.3625 1.3,2.925 1.625,3.25 1.625,2.925 0.8125,1.625 0.1625,0.65 v 2.1125 l -1.3,2.6 L 8.45,45.0125 6.9875,47.775 5.3625,52.4875 4.875,54.925 v 1.95 l 0.65,0.65 2.6,0.1625 3.9,-0.65 4.7125,-1.625 3.25,-1.4625 3.575,-1.95 1.7875,-1.1375 1.3,-0.65 1.1375,-0.1625 h 1.95 l 1.625,0.8125 1.3,0.975 0.8125,0.8125 1.625,1.7875 2.1125,2.7625 2.1125,2.6 1.95,2.6 2.1125,2.4375 2.6,2.6 1.1375,0.975 c 0.238154,0.3062 0.308617,0.308617 0.4875,0.4875 l 0.8125,-0.8125 1.4625,-2.1125 0.325,-0.1625 c -0.0044,-0.457005 0.238774,-0.444387 0.65,-0.65 l 1.4625,-0.975 1.4625,-0.8125 1.625,-0.4875 1.95,-0.325 h 4.225 l 3.0875,0.65 2.275,0.8125 0.975,0.4875 0.4875,0.1625 v 1.1375 l -0.4875,0.65 -1.4625,-0.1625 -3.575,-0.8125 h -4.225 l -2.7625,0.65 -1.95,0.8125 -1.4625,1.1375 -1.3,1.625 -0.975,1.95 -0.325,1.4625 v 2.7625 l 0.4875,1.7875 0.65,1.1375 1.625,1.4625 1.7875,0.8125 L 57.2,81.575 61.5875,81.25 64.35,80.6 66.3,79.7875 68.0875,78.65 l 1.625,-1.4625 1.95,-1.95 0.65,-0.8125 0.65,0.325 h 0.975 l 0.1625,0.975 -1.3,1.7875 -1.625,2.275 -1.625,1.625 v 0.325 l 2.1125,0.8125 3.4125,0.975 2.6,0.4875 4.55,0.325 h 4.225 l 5.525,-0.65 3.7375,-0.8125 4.3875,-1.4625 3.9,-1.625 3.0875,-1.4625 0.975,-0.65 -0.65,-0.325 L 105.3,76.7 104,75.8875 h -0.325 l -0.325,-0.65 -0.975,-1.3 -0.1625,-0.8125 0.8125,-0.1625 1.625,1.1375 1.4625,0.65 0.65,0.1625 h 2.925 l 1.95,-0.4875 2.275,-1.1375 1.625,-1.3 1.3,-1.4625 1.1375,-2.275 0.1625,-0.65 v -2.275 l -0.325,-0.975 -1.3,-1.95 -0.975,-1.625 -0.65,-1.7875 -0.8125,-3.9 -1.3,-3.9 -1.625,-3.9 L 110.175,45.5 109.2,43.875 108.55,42.7375 106.4375,39.65 104.65,37.5375 104,36.5625 103.5125,36.075 c -0.32419,-0.296348 -0.34673,-0.309086 -0.65,-0.65 l -0.65,-0.8125 -0.8125,-0.65 -0.1625,-0.325 c -0.30502,-0.235862 -0.21667,-0.216666 -0.325,-0.325 l -1.625,-1.3 C 99.166039,31.822798 98.921706,31.646706 98.8,31.525 98.439053,31.259572 98.321876,31.176382 98.15,31.0375 L 96.3625,29.9 l -2.6,-1.625 -2.6,-1.4625 L 87.75,25.35 83.6875,24.05 79.625,23.2375 76.5375,22.75 74.5875,22.5875 H 68.575 l -5.6875,0.4875 -4.0625,0.65 -5.2,1.3 -3.0875,0.975 -3.25,1.4625 -4.7125,2.4375 -3.9,2.275 -2.6,1.4625 -2.6,1.1375 h -2.4375 l -1.3,-0.65 L 28.925,33.3125 27.625,31.85 26.1625,30.0625 24.375,27.95 22.9125,26.325 18.85,22.2625 18.0375,21.45 15.4375,19.3375 13,17.55 9.9125,15.6 7.475,14.4625 5.3625,13.8125 Z"
51
+ style="fill:#253949;stroke-width:0.1625;fill-opacity:1"
52
+ id="path3"
53
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
54
+ <path
55
+ d="m 4.0625,13.8125 h 1.3 l 2.1125,0.65 2.7625,1.3 3.9,2.6 1.625,1.3 2.275,1.7875 0.8125,0.8125 4.55,4.55 1.1375,1.3 2.1125,2.4375 1.7875,2.275 0.4875,0.4875 -0.1625,0.4875 -0.4875,0.325 v 0.325 l -0.8125,0.65 v 0.4875 L 26.975,36.075 26.65,36.725 H 26.325 L 26,37.5375 l -0.325,0.65 V 39 l -0.65,0.8125 0.325,0.1625 -0.325,0.325 -0.325,3.25 0.1625,2.4375 0.325,0.8125 0.65,2.6 0.1625,1.1375 -2.7625,1.625 -3.575,1.95 -3.7375,1.625 -3.9,1.3 -3.9,0.65 -2.6,-0.1625 -0.65,-0.65 v -1.95 L 5.525,52 l 1.1375,-3.25 0.65,-1.4625 1.3,-2.6 1.95,-3.25 0.65,-1.4625 v -2.1125 l -0.65,-1.625 L 8.775,32.825 7.15,29.7375 6.0125,27.3 4.3875,22.75 3.7375,20.6375 3.4125,18.85 3.25,15.7625 3.575,14.3 Z"
56
+ style="fill:#faa428;stroke-width:0.1625"
57
+ id="path4" />
58
+ <path
59
+ d="m 90.675,45.9875 h 2.1125 l 2.6,0.65 1.625,0.65 2.1125,1.4625 0.4875,0.4875 c 0.208101,0.306981 0.238774,0.444387 0.65,0.65 L 101.725,52 l 0.8125,1.7875 0.65,2.6 v 3.575 l -0.65,2.4375 -1.1375,2.275 -0.975,1.3 -0.975,1.1375 -2.1125,1.4625 -2.275,0.975 -1.3,0.325 h -2.925 L 88.4,69.225 86.125,68.0875 84.6625,66.95 83.2,65.4875 81.9,63.375 81.0875,61.5875 80.6,59.475 v -3.7375 l 0.65,-2.4375 1.1375,-2.275 1.4625,-1.7875 1.4625,-1.3 2.4375,-1.3 z"
60
+ style="fill:#263d50;stroke-width:0.1625"
61
+ id="path5"
62
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" />
63
+ <path
64
+ d="m 72.6375,22.5875 h 1.95 l 3.4125,0.325 5.0375,0.975 1.7875,0.4875 0.1625,0.65 -2.1125,0.8125 -2.6,1.3 -2.925,2.1125 -2.4375,2.275 -1.1375,1.4625 -1.625,2.1125 -1.625,2.7625 -1.3,2.7625 -0.8125,3.4125 -0.1625,5.3625 -0.325,2.4375 -0.8125,2.6 -1.4625,3.0875 -0.325,1.7875 0.1625,1.95 0.325,1.625 0.325,0.1625 h -0.325 l 0.1625,0.4875 -2.6,-0.65 -1.7875,-0.325 h -4.225 l -1.3,0.1625 L 55.9,62.4 l 0.65,-0.1625 -0.1625,-0.65 h 0.325 l -0.325,-1.4625 v -3.9 l 0.4875,-1.625 1.3,-2.7625 0.8125,-1.95 0.975,-2.925 0.1625,-0.975 0.1625,-4.7125 0.325,-2.4375 L 61.425,36.725 62.4,34.775 63.5375,33.3125 65,31.525 l 1.95,-1.95 1.3,-1.1375 1.1375,-1.1375 1.4625,-1.7875 1.4625,-2.275 z"
65
+ style="fill:#f27b3f;stroke-width:0.1625"
66
+ id="path6" />
67
+ <path
68
+ d="M 54.925,3.0875 H 57.2 l 2.6,0.4875 3.0875,1.1375 1.3,0.65 1.3,0.4875 1.7875,1.1375 2.275,1.625 2.1125,1.625 2.7625,2.6 0.975,1.1375 0.8125,0.8125 c 0.216312,0.279081 0.216666,0.216667 0.325,0.325 l 1.1375,1.7875 1.4625,1.95 0.325,0.975 -0.65,0.1625 -3.0875,-0.325 H 68.25 l -4.875,0.4875 -4.3875,0.65 -5.85,1.4625 -3.575,1.3 -3.7375,1.625 h -0.65 v -0.975 l 0.8125,-0.975 2.6,-1.4625 1.625,-1.3 0.975,-1.4625 0.1625,-0.65 v -1.95 l -0.975,-4.55 -0.1625,-1.625 V 6.5 l 0.65,-1.4625 1.3,-0.975 1.3,-0.65 z"
69
+ style="fill:#fcb031;stroke-width:0.1625"
70
+ id="path7"
71
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" />
72
+ <path
73
+ d="m 68.575,22.5875 h 4.0625 l -0.325,0.975 -1.7875,2.6 -2.4375,2.6 -2.6,2.4375 -1.4625,1.625 -1.4625,1.95 -1.3,2.6 -0.65,2.275 -0.1625,2.1125 -0.1625,4.225 -0.65,2.6 -1.1375,3.0875 -1.3,2.6 -0.4875,1.1375 -0.1625,0.8125 v 3.9 l 0.1625,1.4625 h -0.325 l 0.325,0.8125 -1.3,0.4875 -2.4375,0.8125 -0.65,0.1625 v 0.325 L 51.35,64.5125 51.1875,63.375 50.7,63.2125 50.5375,62.725 50.2125,62.5625 50.375,61.75 49.5625,61.9125 v -0.325 L 49.075,61.425 49.725,61.2625 49.8875,61.1 49.4,60.775 l -0.1625,-0.1625 -0.325,0.325 -0.325,-0.65 -0.1625,-0.8125 -0.1625,-1.4625 0.325,-2.6 0.325,-1.4625 0.8125,-1.7875 0.975,-2.6 0.8125,-1.7875 0.325,-1.3 V 44.2 l -0.325,-2.4375 v -2.275 L 52,37.05 l 1.1375,-2.4375 1.1375,-1.95 0.975,-1.1375 1.4625,-1.7875 2.1125,-2.1125 0.8125,-0.975 h 0.325 l 0.325,-0.8125 0.975,-1.4625 0.1625,-0.975 1.4625,-0.325 z"
74
+ style="fill:#faaf38;stroke-width:0.1625"
75
+ id="path8" />
76
+ <path
77
+ d="m 60.45,23.4 h 0.975 l 0.1625,0.65 -0.975,1.625 -0.65,0.975 -0.65,0.65 -0.65,0.65 -1.95,1.95 -0.975,1.3 -0.65,0.8125 -0.975,1.1375 -0.975,1.625 -0.975,2.275 -0.4875,2.4375 v 2.275 L 52,44.2 v 2.275 l -0.4875,1.625 -1.1375,2.6 -0.975,2.6 -0.4875,0.975 -0.1625,1.1375 -0.325,2.6 v 1.4625 l 0.325,0.1625 -0.1625,0.65 0.325,0.1625 0.1625,0.1625 0.4875,0.975 v 0.325 l 0.65,0.65 0.4875,0.1625 0.1625,0.4875 0.325,0.1625 0.325,0.8125 -0.1625,0.65 -0.8125,0.65 h -0.325 v 0.325 L 49.4,66.625 47.775,68.9 47.45,68.7375 v -0.325 l -0.65,-0.325 -2.1125,-1.95 -1.95,-1.95 -1.4625,-1.7875 -0.1625,-0.325 1.3,0.1625 0.1625,-0.65 -0.325,-0.65 -0.4875,-0.65 L 41.275,58.6625 40.625,57.2 40.3,54.6 40.95,52 l 1.1375,-2.275 1.625,-2.6 0.65,-1.7875 0.1625,-0.975 V 42.575 l -0.4875,-3.7375 0.1625,-2.925 0.65,-2.4375 0.4875,-0.8125 0.975,-1.625 1.3,-1.625 L 49.4,27.3 49.5625,26.975 h 0.325 V 26.65 l 0.975,-0.8125 5.2,-1.4625 z"
78
+ style="fill:#f07640;stroke-width:0.1625"
79
+ id="path9"
80
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
81
+ <path
82
+ d="m 38.35,32.3375 0.325,0.1625 -0.325,3.25 -0.325,5.6875 -0.4875,3.0875 -0.8125,1.95 -1.7875,3.0875 V 50.05 l -0.8125,0.8125 -0.65,1.3 -0.325,0.1625 -1.7875,-1.4625 -1.625,-0.8125 h -1.95 L 26,50.375 25.5125,49.075 24.8625,46.15 24.7,45.5 24.5375,43.0625 24.8625,40.3 l 0.325,-0.975 0.325,-0.65 0.1625,-0.65 0.65,-1.3 0.65,-0.975 c 0.137171,-0.150279 0.216667,-0.433333 0.325,-0.65 l 0.65,-0.65 c 0.148224,-0.179928 0.08941,-0.268234 0.1625,-0.4875 l 0.975,-0.325 1.4625,0.975 0.4875,0.1625 h 2.4375 l 2.6,-1.1375 1.7875,-0.975 z"
83
+ style="fill:#f17840;stroke-width:0.1625"
84
+ id="path10"
85
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" />
86
+ <path
87
+ d="m 91,47.775 h 1.625 l 2.1125,0.4875 2.275,1.1375 1.95,1.7875 1.4625,2.275 0.65,1.7875 0.325,1.95 -0.1625,2.925 -0.8125,2.6 -0.1625,0.325 h -0.325 L 100.1,62.075 V 58.9875 L 99.45,56.875 98.475,55.25 97.5,54.1125 l -0.8125,-0.65 -0.8125,-0.65 -2.1125,-0.65 H 91.325 l -1.7875,0.65 -1.4625,1.1375 -0.975,1.3 -0.8125,1.7875 -0.325,1.3 V 60.45 l 0.65,2.1125 0.975,1.625 0.975,1.1375 1.3,0.975 1.625,0.8125 1.625,0.4875 v 0.1625 h -2.6 l -2.6,-0.8125 -2.275,-1.625 -1.4625,-1.7875 -1.3,-2.6 -0.4875,-2.275 v -2.275 l 0.65,-2.6 0.975,-1.7875 1.625,-1.95 1.625,-1.1375 1.95,-0.8125 z"
88
+ style="fill:#efe8d8;stroke-width:0.1625"
89
+ id="path11"
90
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" />
91
+ <path
92
+ d="m 117.65,18.85 h 2.1125 l 1.7875,0.65 1.625,1.4625 0.8125,1.7875 0.1625,1.3 -0.325,1.95 -0.975,1.625 -1.3,1.1375 -1.7875,0.65 h -1.95 l -1.7875,-0.65 -1.1375,-0.8125 -0.975,-1.4625 -0.4875,-1.1375 v -2.4375 l 0.65,-1.625 1.1375,-1.3 1.95,-0.975 z m 1.7875,3.0875 -0.4875,0.325 -0.1625,0.65 0.4875,0.65 h 0.8125 l 0.325,-0.325 v -0.975 l -0.4875,-0.325 z"
93
+ style="fill:#1c354a;stroke-width:0.1625"
94
+ id="path12" />
95
+ <path
96
+ d="m 74.1,75.725 0.65,0.325 0.4875,0.65 1.3,0.4875 0.975,0.1625 1.95,0.4875 0.325,0.4875 0.8125,0.4875 0.325,0.65 0.8125,0.8125 0.4875,0.4875 0.4875,0.4875 1.1375,2.275 0.325,0.4875 v 0.325 h -1.95 l -4.55,-0.325 -3.4125,-0.65 -4.0625,-1.3 -0.65,-0.325 0.325,-0.65 1.625,-1.625 1.625,-2.4375 z"
97
+ style="fill:#e7683e;stroke-width:0.1625"
98
+ id="path13"
99
+ sodipodi:nodetypes="cccccccccccccccccccccccc" />
100
+ <path
101
+ d="m 124.63749,40.7875 h 2.1125 l 1.4625,0.8125 0.975,1.3 0.1625,0.4875 v 2.275 l -0.65,1.3 -1.1375,0.975 -1.625,0.4875 -1.4625,-0.1625 -1.625,-0.975 -0.8125,-1.1375 -0.325,-1.3 0.1625,-1.4625 0.8125,-1.4625 1.4625,-0.975 z m 0.975,2.275 -0.1625,0.1625 v 0.8125 l 0.1625,0.1625 h 0.8125 l 0.1625,-0.8125 -0.325,-0.325 z"
102
+ style="fill:#1c354a;stroke-width:0.1625"
103
+ id="path14" />
104
+ <text
105
+ xml:space="preserve"
106
+ style="font-size:29.1586px;font-family:'Familjen Grotesk';-inkscape-font-specification:'Familjen Grotesk';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#fbb034;fill-opacity:1;stroke:#253949;stroke-width:0.665;stroke-opacity:1;stroke-dasharray:none"
107
+ x="199.5256"
108
+ y="49.812157"
109
+ id="text28"
110
+ transform="scale(0.75332836,1.3274424)"><tspan
111
+ sodipodi:role="line"
112
+ id="tspan28"
113
+ x="199.5256"
114
+ y="49.812157"
115
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Sixtyfour;-inkscape-font-specification:Sixtyfour;fill:#fbb034;fill-opacity:1;stroke:#253949;stroke-width:0.665;stroke-opacity:1;stroke-dasharray:none">Streamdown_</tspan></text>
116
+ </svg>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "streamdown"
7
- version = "0.15.0"
7
+ version = "0.17.0"
8
8
  description = "A streaming markdown renderer for modern terminals with syntax highlighting"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -0,0 +1,5 @@
1
+ pygments
2
+ pylatexenc
3
+ appdirs
4
+ term-image
5
+ toml