rhiza 0.9.1__tar.gz → 0.10.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 (122) hide show
  1. rhiza-0.10.0/.github/actions/configure-git-auth/README.md +74 -0
  2. rhiza-0.10.0/.github/actions/configure-git-auth/action.yml +20 -0
  3. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_benchmarks.yml +6 -2
  4. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_book.yml +6 -1
  5. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_ci.yml +18 -3
  6. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_codeql.yml +6 -2
  7. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_deptry.yml +6 -1
  8. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_marimo.yml +6 -1
  9. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_mypy.yml +6 -1
  10. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_pre-commit.yml +5 -0
  11. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_release.yml +7 -2
  12. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_security.yml +6 -1
  13. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_validate.yml +10 -5
  14. {rhiza-0.9.1 → rhiza-0.10.0}/.pre-commit-config.yaml +11 -6
  15. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/.cfg.toml +1 -5
  16. rhiza-0.10.0/.rhiza/assets/rhiza-logo.svg +81 -0
  17. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/docs/CONFIG.md +1 -0
  18. rhiza-0.10.0/.rhiza/docs/PRIVATE_PACKAGES.md +222 -0
  19. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/history +14 -11
  20. rhiza-0.9.1/tests/tests.mk → rhiza-0.10.0/.rhiza/make.d/01-test.mk +1 -10
  21. rhiza-0.9.1/book/book.mk → rhiza-0.10.0/.rhiza/make.d/02-book.mk +13 -61
  22. rhiza-0.9.1/.github/agents/agentic.mk → rhiza-0.10.0/.rhiza/make.d/06-agentic.mk +30 -1
  23. rhiza-0.10.0/.rhiza/make.d/07-docker.mk +31 -0
  24. rhiza-0.10.0/.rhiza/make.d/08-docs.mk +56 -0
  25. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/requirements/tests.txt +1 -0
  26. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/rhiza.mk +15 -9
  27. rhiza-0.10.0/.rhiza/template.yml +6 -0
  28. {rhiza-0.9.1/book/minibook-templates → rhiza-0.10.0/.rhiza/templates/minibook}/custom.html.jinja2 +2 -2
  29. {rhiza-0.9.1 → rhiza-0.10.0}/Makefile +4 -0
  30. {rhiza-0.9.1 → rhiza-0.10.0}/PKG-INFO +2 -2
  31. {rhiza-0.9.1 → rhiza-0.10.0}/README.md +1 -1
  32. {rhiza-0.9.1 → rhiza-0.10.0}/pyproject.toml +1 -1
  33. rhiza-0.10.0/src/rhiza/bundle_resolver.py +78 -0
  34. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/init.py +35 -8
  35. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/materialize.py +71 -12
  36. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/validate.py +87 -3
  37. rhiza-0.10.0/src/rhiza/models.py +312 -0
  38. rhiza-0.10.0/tests/test_bundle_resolver.py +364 -0
  39. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_commands/test_init.py +18 -19
  40. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_commands/test_materialize.py +1 -1
  41. rhiza-0.10.0/tests/test_commands/test_materialize_bundles.py +207 -0
  42. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_models.py +74 -0
  43. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/conftest.py +6 -0
  44. rhiza-0.10.0/tests/test_rhiza/test_book.py +146 -0
  45. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_docstrings.py +20 -12
  46. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_makefile.py +6 -3
  47. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_makefile_api.py +5 -14
  48. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_makefile_gh.py +9 -11
  49. {rhiza-0.9.1 → rhiza-0.10.0}/uv.lock +4 -4
  50. rhiza-0.9.1/.rhiza/template.yml +0 -23
  51. rhiza-0.9.1/book/README.md +0 -67
  52. rhiza-0.9.1/book/marimo/.gitkeep +0 -0
  53. rhiza-0.9.1/book/marimo/README.md +0 -142
  54. rhiza-0.9.1/presentation/README.md +0 -325
  55. rhiza-0.9.1/src/rhiza/models.py +0 -141
  56. rhiza-0.9.1/tests/test_rhiza/test_book.py +0 -68
  57. {rhiza-0.9.1 → rhiza-0.10.0}/.editorconfig +0 -0
  58. {rhiza-0.9.1 → rhiza-0.10.0}/.github/ISSUE_TEMPLATE/assign_ui_implementation.md +0 -0
  59. {rhiza-0.9.1 → rhiza-0.10.0}/.github/agents/analyser.md +0 -0
  60. {rhiza-0.9.1 → rhiza-0.10.0}/.github/agents/summarise.md +0 -0
  61. {rhiza-0.9.1 → rhiza-0.10.0}/.github/copilot-instructions.md +0 -0
  62. {rhiza-0.9.1 → rhiza-0.10.0}/.github/workflows/rhiza_sync.yml +0 -0
  63. {rhiza-0.9.1 → rhiza-0.10.0}/.gitignore +0 -0
  64. {rhiza-0.9.1 → rhiza-0.10.0}/.python-version +0 -0
  65. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/.gitignore +0 -0
  66. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/.rhiza-version +0 -0
  67. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/docs/TOKEN_SETUP.md +0 -0
  68. /rhiza-0.9.1/.rhiza/make.d/01-custom-env.mk → /rhiza-0.10.0/.rhiza/make.d/00-custom-env.mk +0 -0
  69. /rhiza-0.9.1/book/marimo/marimo.mk → /rhiza-0.10.0/.rhiza/make.d/03-marimo.mk +0 -0
  70. /rhiza-0.9.1/presentation/presentation.mk → /rhiza-0.10.0/.rhiza/make.d/04-presentation.mk +0 -0
  71. /rhiza-0.9.1/.github/github.mk → /rhiza-0.10.0/.rhiza/make.d/05-github.mk +0 -0
  72. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/make.d/10-custom-task.mk +0 -0
  73. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/make.d/README.md +0 -0
  74. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/requirements/README.md +0 -0
  75. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/requirements/docs.txt +0 -0
  76. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/requirements/marimo.txt +0 -0
  77. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/requirements/tools.txt +0 -0
  78. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/scripts/release.sh +0 -0
  79. {rhiza-0.9.1 → rhiza-0.10.0}/.rhiza/utils/version_matrix.py +0 -0
  80. {rhiza-0.9.1 → rhiza-0.10.0}/CLI.md +0 -0
  81. {rhiza-0.9.1 → rhiza-0.10.0}/CODE_OF_CONDUCT.md +0 -0
  82. {rhiza-0.9.1 → rhiza-0.10.0}/CONTRIBUTING.md +0 -0
  83. {rhiza-0.9.1 → rhiza-0.10.0}/GETTING_STARTED.md +0 -0
  84. {rhiza-0.9.1 → rhiza-0.10.0}/LICENSE +0 -0
  85. {rhiza-0.9.1 → rhiza-0.10.0}/USAGE.md +0 -0
  86. {rhiza-0.9.1 → rhiza-0.10.0}/book/marimo/notebooks/rhiza.py +0 -0
  87. {rhiza-0.9.1 → rhiza-0.10.0}/pr-description.md +0 -0
  88. {rhiza-0.9.1 → rhiza-0.10.0}/pytest.ini +0 -0
  89. {rhiza-0.9.1 → rhiza-0.10.0}/renovate.json +0 -0
  90. {rhiza-0.9.1 → rhiza-0.10.0}/ruff.toml +0 -0
  91. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/__init__.py +0 -0
  92. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/__main__.py +0 -0
  93. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/_templates/basic/__init__.py.jinja2 +0 -0
  94. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/_templates/basic/main.py.jinja2 +0 -0
  95. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/_templates/basic/pyproject.toml.jinja2 +0 -0
  96. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/cli.py +0 -0
  97. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/__init__.py +0 -0
  98. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/migrate.py +0 -0
  99. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/summarise.py +0 -0
  100. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/uninstall.py +0 -0
  101. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/commands/welcome.py +0 -0
  102. {rhiza-0.9.1 → rhiza-0.10.0}/src/rhiza/subprocess_utils.py +0 -0
  103. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_cli_commands.py +0 -0
  104. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_commands/test_migrate.py +0 -0
  105. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_commands/test_summarise.py +0 -0
  106. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_commands/test_uninstall.py +0 -0
  107. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_commands/test_validate.py +0 -0
  108. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_package.py +0 -0
  109. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/README.md +0 -0
  110. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/__init__.py +0 -0
  111. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/benchmarks/.gitignore +0 -0
  112. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/benchmarks/README.md +0 -0
  113. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/benchmarks/analyze_benchmarks.py +0 -0
  114. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_git_repo_fixture.py +0 -0
  115. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_marimushka_target.py +0 -0
  116. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_notebooks.py +0 -0
  117. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_readme.py +0 -0
  118. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_release_script.py +0 -0
  119. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_requirements_folder.py +0 -0
  120. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_rhiza_workflows.py +0 -0
  121. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_structure.py +0 -0
  122. {rhiza-0.9.1 → rhiza-0.10.0}/tests/test_rhiza/test_version_matrix.py +0 -0
@@ -0,0 +1,74 @@
1
+ # Configure Git Auth for Private Packages
2
+
3
+ This composite action configures git to use token authentication for private GitHub packages.
4
+
5
+ ## Usage
6
+
7
+ Add this step before installing dependencies that include private GitHub packages:
8
+
9
+ ```yaml
10
+ - name: Configure git auth for private packages
11
+ uses: ./.github/actions/configure-git-auth
12
+ with:
13
+ token: ${{ secrets.GH_PAT }}
14
+ ```
15
+
16
+ The `GH_PAT` secret should be a Personal Access Token with `repo` scope.
17
+
18
+ ## What It Does
19
+
20
+ This action runs:
21
+
22
+ ```bash
23
+ git config --global url."https://<token>@github.com/".insteadOf "https://github.com/"
24
+ ```
25
+
26
+ This tells git to automatically inject the token into all HTTPS GitHub URLs, enabling access to private repositories.
27
+
28
+ ## When to Use
29
+
30
+ Use this action when your project has dependencies defined in `pyproject.toml` like:
31
+
32
+ ```toml
33
+ [tool.uv.sources]
34
+ private-package = { git = "https://github.com/your-org/private-package.git", rev = "v1.0.0" }
35
+ ```
36
+
37
+ ## Token Requirements
38
+
39
+ The default `GITHUB_TOKEN` does **not** have access to other private repositories, even within the same organization. You must use a Personal Access Token (PAT) with `repo` scope stored as `secrets.GH_PAT`.
40
+
41
+ If `secrets.GH_PAT` is not defined, GitHub Actions passes an empty string. The action will still run successfully, but any subsequent step that tries to access private repositories will fail with an authentication error.
42
+
43
+ ## Example Workflow
44
+
45
+ ```yaml
46
+ name: CI
47
+
48
+ on: [push, pull_request]
49
+
50
+ jobs:
51
+ test:
52
+ runs-on: ubuntu-latest
53
+ steps:
54
+ - uses: actions/checkout@v6
55
+
56
+ - name: Install uv
57
+ uses: astral-sh/setup-uv@v7
58
+
59
+ - name: Configure git auth for private packages
60
+ uses: ./.github/actions/configure-git-auth
61
+ with:
62
+ token: ${{ secrets.GH_PAT }}
63
+
64
+ - name: Install dependencies
65
+ run: uv sync --frozen
66
+
67
+ - name: Run tests
68
+ run: uv run pytest
69
+ ```
70
+
71
+ ## See Also
72
+
73
+ - [PRIVATE_PACKAGES.md](../../../.rhiza/docs/PRIVATE_PACKAGES.md) - Complete guide to using private packages
74
+ - [TOKEN_SETUP.md](../../../.rhiza/docs/TOKEN_SETUP.md) - Setting up Personal Access Tokens
@@ -0,0 +1,20 @@
1
+ name: 'Configure Git Auth for Private Packages'
2
+ description: 'Configure git to use token authentication for private GitHub packages'
3
+
4
+ inputs:
5
+ token:
6
+ description: 'GitHub token to use for authentication (use github.token)'
7
+ required: false
8
+ default: ${{ github.token }}
9
+
10
+ runs:
11
+ using: composite
12
+ steps:
13
+ - name: Configure git authentication
14
+ shell: bash
15
+ run: |
16
+ # Configure git to use token authentication for GitHub URLs
17
+ # This allows uv/pip to install private packages from GitHub
18
+ git config --global url."https://${{ inputs.token }}@github.com/".insteadOf "https://github.com/"
19
+
20
+ echo "✓ Git configured to use token authentication for GitHub"
@@ -39,8 +39,12 @@ jobs:
39
39
  - name: Install uv
40
40
  uses: astral-sh/setup-uv@v7.2.1
41
41
  with:
42
- version: "0.9.28"
43
- python-version: "3.12"
42
+ version: "0.9.30"
43
+
44
+ - name: Configure git auth for private packages
45
+ uses: ./.github/actions/configure-git-auth
46
+ with:
47
+ token: ${{ secrets.GH_PAT }}
44
48
 
45
49
  - name: Run benchmarks
46
50
  env:
@@ -43,7 +43,12 @@ jobs:
43
43
  - name: Install uv
44
44
  uses: astral-sh/setup-uv@v7.2.1
45
45
  with:
46
- version: "0.9.28"
46
+ version: "0.9.30"
47
+
48
+ - name: Configure git auth for private packages
49
+ uses: ./.github/actions/configure-git-auth
50
+ with:
51
+ token: ${{ secrets.GH_PAT }}
47
52
 
48
53
  - name: "Sync the virtual environment for ${{ github.repository }}"
49
54
  shell: bash
@@ -31,8 +31,13 @@ jobs:
31
31
  - name: Install uv
32
32
  uses: astral-sh/setup-uv@v7.2.1
33
33
  with:
34
- version: "0.9.28"
34
+ version: "0.9.30"
35
35
 
36
+ - name: Configure git auth for private packages
37
+ uses: ./.github/actions/configure-git-auth
38
+ with:
39
+ token: ${{ secrets.GH_PAT }}
40
+
36
41
  - id: versions
37
42
  env:
38
43
  UV_EXTRA_INDEX_URL: ${{ secrets.UV_EXTRA_INDEX_URL }}
@@ -62,9 +67,14 @@ jobs:
62
67
  - name: Install uv
63
68
  uses: astral-sh/setup-uv@v7.2.1
64
69
  with:
65
- version: "0.9.28"
70
+ version: "0.9.30"
66
71
  python-version: ${{ matrix.python-version }}
67
72
 
73
+ - name: Configure git auth for private packages
74
+ uses: ./.github/actions/configure-git-auth
75
+ with:
76
+ token: ${{ secrets.GH_PAT }}
77
+
68
78
  - name: Run tests
69
79
  env:
70
80
  UV_EXTRA_INDEX_URL: ${{ secrets.UV_EXTRA_INDEX_URL }}
@@ -81,7 +91,12 @@ jobs:
81
91
  - name: Install uv
82
92
  uses: astral-sh/setup-uv@v7.2.1
83
93
  with:
84
- version: "0.9.28"
94
+ version: "0.9.30"
95
+
96
+ - name: Configure git auth for private packages
97
+ uses: ./.github/actions/configure-git-auth
98
+ with:
99
+ token: ${{ secrets.GH_PAT }}
85
100
 
86
101
  - name: Check docs coverage
87
102
  env:
@@ -83,6 +83,10 @@ jobs:
83
83
  - name: Checkout repository
84
84
  uses: actions/checkout@v6.0.2
85
85
 
86
+ - name: Configure git auth for private packages
87
+ uses: ./.github/actions/configure-git-auth
88
+ with:
89
+ token: ${{ secrets.GH_PAT }}
86
90
  # Add any setup steps before running the `github/codeql-action/init` action.
87
91
  # This includes steps like installing compilers or runtimes (`actions/setup-node`
88
92
  # or others). This is typically only required for manual builds.
@@ -91,7 +95,7 @@ jobs:
91
95
 
92
96
  # Initializes the CodeQL tools for scanning.
93
97
  - name: Initialize CodeQL
94
- uses: github/codeql-action/init@v4.32.0
98
+ uses: github/codeql-action/init@v4.32.1
95
99
  with:
96
100
  languages: ${{ matrix.language }}
97
101
  build-mode: ${{ matrix.build-mode }}
@@ -120,6 +124,6 @@ jobs:
120
124
  exit 1
121
125
 
122
126
  - name: Perform CodeQL Analysis
123
- uses: github/codeql-action/analyze@v4.32.0
127
+ uses: github/codeql-action/analyze@v4.32.1
124
128
  with:
125
129
  category: "/language:${{matrix.language}}"
@@ -27,11 +27,16 @@ jobs:
27
27
  name: Check dependencies with deptry
28
28
  runs-on: ubuntu-latest
29
29
  container:
30
- image: ghcr.io/astral-sh/uv:0.9.28-bookworm
30
+ image: ghcr.io/astral-sh/uv:0.9.30-bookworm
31
31
 
32
32
  steps:
33
33
  - uses: actions/checkout@v6.0.2
34
34
 
35
+ - name: Configure git auth for private packages
36
+ uses: ./.github/actions/configure-git-auth
37
+ with:
38
+ token: ${{ secrets.GH_PAT }}
39
+
35
40
  - name: Run deptry
36
41
  run: make deptry
37
42
  # NOTE: make deptry is good style because it encapsulates the folders to check
@@ -83,7 +83,12 @@ jobs:
83
83
  - name: Install uv
84
84
  uses: astral-sh/setup-uv@v7.2.1
85
85
  with:
86
- version: "0.9.28"
86
+ version: "0.9.30"
87
+
88
+ - name: Configure git auth for private packages
89
+ uses: ./.github/actions/configure-git-auth
90
+ with:
91
+ token: ${{ secrets.GH_PAT }}
87
92
 
88
93
  # Execute the notebook with the appropriate runner based on its content
89
94
  - name: Run notebook
@@ -24,11 +24,16 @@ jobs:
24
24
  name: Static type checking with mypy
25
25
  runs-on: ubuntu-latest
26
26
  container:
27
- image: ghcr.io/astral-sh/uv:0.9.28-bookworm
27
+ image: ghcr.io/astral-sh/uv:0.9.30-bookworm
28
28
 
29
29
  steps:
30
30
  - uses: actions/checkout@v6
31
31
 
32
+ - name: Configure git auth for private packages
33
+ uses: ./.github/actions/configure-git-auth
34
+ with:
35
+ token: ${{ secrets.GH_PAT }}
36
+
32
37
  # to brutal for now
33
38
  # - name: Run mypy
34
39
  # run: make -f .rhiza/rhiza.mk mypy
@@ -31,6 +31,11 @@ jobs:
31
31
  steps:
32
32
  - uses: actions/checkout@v6.0.2
33
33
 
34
+ - name: Configure git auth for private packages
35
+ uses: ./.github/actions/configure-git-auth
36
+ with:
37
+ token: ${{ secrets.GH_PAT }}
38
+
34
39
  # Run pre-commit
35
40
  - name: Run pre-commit
36
41
  run: |
@@ -113,7 +113,12 @@ jobs:
113
113
  - name: Install uv
114
114
  uses: astral-sh/setup-uv@v7.2.1
115
115
  with:
116
- version: "0.9.28"
116
+ version: "0.9.30"
117
+
118
+ - name: Configure git auth for private packages
119
+ uses: ./.github/actions/configure-git-auth
120
+ with:
121
+ token: ${{ secrets.GH_PAT }}
117
122
 
118
123
  - name: Verify version matches tag
119
124
  if: hashFiles('pyproject.toml') != ''
@@ -322,7 +327,7 @@ jobs:
322
327
  - name: Install uv
323
328
  uses: astral-sh/setup-uv@v7.2.1
324
329
  with:
325
- version: "0.9.28"
330
+ version: "0.9.30"
326
331
 
327
332
  - name: "Sync the virtual environment for ${{ github.repository }}"
328
333
  shell: bash
@@ -27,11 +27,16 @@ jobs:
27
27
  name: Security scanning
28
28
  runs-on: ubuntu-latest
29
29
  container:
30
- image: ghcr.io/astral-sh/uv:0.9.28-bookworm
30
+ image: ghcr.io/astral-sh/uv:0.9.30-bookworm
31
31
 
32
32
  steps:
33
33
  - uses: actions/checkout@v6.0.2
34
34
 
35
+ - name: Configure git auth for private packages
36
+ uses: ./.github/actions/configure-git-auth
37
+ with:
38
+ token: ${{ secrets.GH_PAT }}
39
+
35
40
  - name: Run security scans
36
41
  env:
37
42
  UV_EXTRA_INDEX_URL: ${{ secrets.UV_EXTRA_INDEX_URL }}
@@ -15,13 +15,18 @@ jobs:
15
15
  # don't run this in rhiza itself. Rhiza has no template.yml file.
16
16
  if: ${{ github.repository != 'jebel-quant/rhiza' }}
17
17
  container:
18
- image: ghcr.io/astral-sh/uv:0.9.28-bookworm
18
+ image: ghcr.io/astral-sh/uv:0.9.30-bookworm
19
19
 
20
20
  steps:
21
21
  - name: Checkout repository
22
22
  uses: actions/checkout@v6.0.2
23
23
 
24
- - name: Validate Rhiza config
25
- shell: bash
26
- run: |
27
- uvx "rhiza>=0.8.0" validate .
24
+ - name: Configure git auth for private packages
25
+ uses: ./.github/actions/configure-git-auth
26
+ with:
27
+ token: ${{ secrets.GH_PAT }}
28
+
29
+ #- name: Validate Rhiza config
30
+ # shell: bash
31
+ # run: |
32
+ # uvx "rhiza>=0.8.0" validate .
@@ -9,7 +9,7 @@ repos:
9
9
  - id: check-yaml
10
10
 
11
11
  - repo: https://github.com/astral-sh/ruff-pre-commit
12
- rev: 'v0.14.14'
12
+ rev: 'v0.15.0'
13
13
  hooks:
14
14
  - id: ruff
15
15
  args: [ --fix, --exit-non-zero-on-fix, --unsafe-fixes ]
@@ -38,7 +38,7 @@ repos:
38
38
  - id: actionlint
39
39
 
40
40
  - repo: https://github.com/abravalheri/validate-pyproject
41
- rev: v0.24.1
41
+ rev: v0.25
42
42
  hooks:
43
43
  - id: validate-pyproject
44
44
 
@@ -46,10 +46,15 @@ repos:
46
46
  rev: 1.9.3
47
47
  hooks:
48
48
  - id: bandit
49
- args: ["--skip", "B101", "--exclude", ".venv,tests,.git,.pytest_cache"]
50
-
49
+ args: ["--skip", "B101", "--exclude", ".venv,tests,.git,.pytest_cache", "-c", "pyproject.toml"]
50
+ - repo: https://github.com/astral-sh/uv-pre-commit
51
+ # uv version.
52
+ rev: 0.9.30
53
+ hooks:
54
+ - id: uv-lock
55
+
51
56
  - repo: https://github.com/Jebel-Quant/rhiza-hooks
52
- rev: v0.1.2 # Use the latest release
57
+ rev: v0.1.4 # Use the latest release
53
58
  hooks:
54
59
  # Migrated from rhiza
55
60
  - id: check-rhiza-workflow-names
@@ -57,4 +62,4 @@ repos:
57
62
  # Additional utility hooks
58
63
  - id: check-rhiza-config
59
64
  - id: check-makefile-targets
60
- - id: check-python-version-consistency
65
+ - id: check-python-version-consistency
@@ -14,6 +14,7 @@ allow_dirty = false
14
14
  commit = true
15
15
  message = "Chore: bump version {current_version} → {new_version}"
16
16
  commit_args = ""
17
+ pre_commit_hooks = ["uv sync", "git add uv.lock"] # Ensure uv.lock is updated
17
18
 
18
19
  [tool.bumpversion.parts.release]
19
20
  optional_value = "prod"
@@ -28,9 +29,4 @@ values = [
28
29
  [[tool.bumpversion.files]]
29
30
  filename = "pyproject.toml"
30
31
  search = 'version = "{current_version}"'
31
- replace = 'version = "{new_version}"'
32
-
33
- [[tool.bumpversion.files]]
34
- filename = "uv.lock"
35
- search = 'version = "{current_version}"'
36
32
  replace = 'version = "{new_version}"'
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="526" height="499">
3
+ <path d="M0 0 C3.49607327 2.74691471 5.38728221 6.30449186 6.14287663 10.61766434 C6.65930633 16.40091026 6.87942287 22.11205136 6.83178711 27.91699219 C6.82872055 28.81279999 6.82565399 29.70860779 6.82249451 30.63156128 C6.81539376 32.55865142 6.80603314 34.48573435 6.79459953 36.41280365 C6.77703621 39.47550439 6.76685501 42.5381517 6.75868225 45.60089111 C6.7343852 54.30298913 6.69883515 63.00501503 6.65405273 71.70703125 C6.62707933 77.04834776 6.61016178 82.38962304 6.59918404 87.73099518 C6.59302897 89.75135065 6.58309399 91.77169866 6.56910515 93.79201508 C6.00031895 114.29593863 6.00031895 114.29593863 11.8125 133.625 C12.33972656 134.68203125 12.86695313 135.7390625 13.41015625 136.828125 C19.38927393 146.55937844 26.98629931 152.32276703 37.0625 157.375 C38.27092523 157.99995487 39.47850263 158.62655139 40.68530273 159.25463867 C44.69039597 161.32781664 48.71883653 163.35310594 52.75 165.375 C54.25461536 166.13220884 55.75917128 166.88953581 57.26367188 167.64697266 C63.40069244 170.73309261 69.53999476 173.81432713 75.69848633 176.85742188 C84.03035034 180.97812905 92.29197436 185.20893393 100.50695801 189.55818176 C106.14981888 192.54271786 111.81687697 195.47555836 117.50390625 198.375 C118.31205276 198.78739426 119.12019928 199.19978851 119.95283508 199.62467957 C123.22516486 201.29366776 126.49815859 202.96132523 129.77319336 204.625 C138.78212059 209.204143 147.74995918 213.84760064 156.609375 218.7109375 C157.34519302 219.11046631 158.08101105 219.50999512 158.83912659 219.92163086 C164.97146628 223.32376106 169.89228469 227.28374068 174.75 232.375 C175.3790625 232.98472656 176.008125 233.59445312 176.65625 234.22265625 C189.47375361 247.46178827 191.86240155 264.78153171 191.7265625 282.41796875 C191.33285062 288.61424379 189.68385827 292.73325749 184.9453125 297 C180.85382622 299.56263909 176.38616783 299.1869842 171.75 298.375 C166.94441745 295.81883907 164.36993408 292.55258834 162.75 287.375 C162.625 284.90234375 162.625 284.90234375 162.75 282.3125 C162.9268275 270.35253116 160.77826367 259.29983507 152.25390625 250.44921875 C147.64179467 245.95577034 142.56106916 243.24224349 136.8125 240.4375 C134.7809726 239.41331046 132.74972532 238.38856513 130.71875 237.36328125 C129.71714844 236.86393066 128.71554687 236.36458008 127.68359375 235.85009766 C123.35759629 233.67485826 119.08410603 231.4046989 114.8125 229.125 C113.42850281 228.39040379 112.04440123 227.65600418 110.66015625 226.921875 C109.69980469 226.41140625 108.73945313 225.9009375 107.75 225.375 C107.88277344 225.93703125 108.01554687 226.4990625 108.15234375 227.078125 C110.80031165 239.6801328 114.05334931 259.0650841 107.9375 270.875 C103.88427283 275.50725962 101.13364982 276.95375174 94.99609375 277.4375 C90.42980231 277.31043798 87.71909925 275.29026041 84.5 272.25 C79.34927467 263.7880941 80.38260839 252.96348314 80.27148438 243.41210938 C80.05609118 234.07665311 78.80442487 225.95350195 73.75 217.9375 C73.255 217.13441406 72.76 216.33132812 72.25 215.50390625 C70.83216851 213.35687781 70.83216851 213.35687781 69.0625 211.71484375 C67.75 210.375 67.75 210.375 67.75 208.375 C67.09 208.375 66.43 208.375 65.75 208.375 C65.75 207.715 65.75 207.055 65.75 206.375 C65.17362793 206.09358154 64.59725586 205.81216309 64.00341797 205.5222168 C61.84870406 204.42525031 59.7759185 203.2504465 57.6953125 202.01953125 C46.81862678 195.62403201 46.81862678 195.62403201 35.625 189.8125 C27.38975101 185.80642482 19.58959829 181.09462495 11.75 176.375 C10.08340102 175.3748872 8.41674112 174.3748759 6.75 173.375 C6.78824895 181.39951345 6.8478851 189.42347634 6.93390274 197.44760609 C6.9732038 201.17464116 7.00547631 204.90144612 7.02099609 208.62866211 C7.03627871 212.23404189 7.07092468 215.83878827 7.11830902 219.4438839 C7.13300457 220.8107416 7.14103413 222.1776898 7.14188385 223.54462624 C7.156825 235.54198892 9.32733884 244.62338414 16.3828125 254.40234375 C17.75 256.375 17.75 256.375 18.6796875 258.50390625 C19.5803661 260.50036043 19.5803661 260.50036043 21.47692871 261.16418457 C24.55901411 262.80594415 26.77057751 265.14963273 29.18945312 267.61914062 C29.72005844 268.15266647 30.25066376 268.68619232 30.79734802 269.23588562 C31.94594376 270.39207771 33.09222355 271.55057416 34.23643494 272.71110535 C36.04779754 274.54803107 37.86536668 276.37860454 39.68469238 278.2076416 C44.20113496 282.7508051 48.70664998 287.30475715 53.21258545 291.8583374 C57.02259201 295.70779757 60.83665802 299.55314699 64.65623474 303.39311218 C66.44622427 305.19606118 68.23008009 307.00493209 70.01379395 308.81408691 C71.11241432 309.91997313 72.21131691 311.02557908 73.31054688 312.13085938 C74.05098488 312.88679634 74.05098488 312.88679634 74.80638123 313.65800476 C77.30077677 316.15316071 79.53395657 317.93548855 82.75 319.375 C84.42578125 321.2578125 84.42578125 321.2578125 86.0625 323.5 C88.34632022 326.56949342 90.68215696 329.41167338 93.3125 332.1875 C103.73055861 343.96647617 105.59837124 358.2727757 105.75 373.375 C105.38456443 378.70765243 104.71718397 382.18461973 101.3125 386.375 C96.59929372 390.05360002 94.11430294 390.81946362 88.2578125 390.69140625 C84.55778087 390.22457983 82.49186303 388.8493642 79.75 386.375 C78 383.6875 78 383.6875 76.75 381.375 C76.09 381.045 75.43 380.715 74.75 380.375 C75.08 379.715 75.41 379.055 75.75 378.375 C76.73126888 366.78847903 75.22191719 356.91597787 67.85620117 347.8034668 C64.08612047 343.45653359 60.03424665 339.41191715 55.9375 335.375 C55.07962891 334.51777344 54.22175781 333.66054688 53.33789062 332.77734375 C49.40858177 328.59076787 49.40858177 328.59076787 44.75 325.375 C44.75 324.715 44.75 324.055 44.75 323.375 C44.09 323.375 43.43 323.375 42.75 323.375 C41.39613064 321.72497172 40.06321858 320.0575613 38.75 318.375 C38.09 318.045 37.43 317.715 36.75 317.375 C36.75 316.715 36.75 316.055 36.75 315.375 C36.21536133 315.16633301 35.68072266 314.95766602 35.12988281 314.74267578 C31.81147094 312.83564425 29.33148695 310.20189136 26.671875 307.4921875 C26.10043762 306.91792023 25.52900024 306.34365295 24.94024658 305.75198364 C23.12207055 303.9226419 21.31098508 302.08645807 19.5 300.25 C18.26608671 299.00605226 17.03171678 297.7625573 15.796875 296.51953125 C12.77593257 293.47657633 9.76132908 290.42746746 6.75 287.375 C6.75184359 288.02969174 6.75368717 288.68438349 6.75558662 289.35891438 C6.79985503 305.32713479 6.8328999 321.2953337 6.85362434 337.26360035 C6.86391424 344.98589603 6.87793058 352.70815062 6.90087891 360.43041992 C6.92088309 367.16520536 6.93373304 373.89996102 6.93817699 380.63477534 C6.94077253 384.19711953 6.94682487 387.75937857 6.96146011 391.32169533 C6.97770804 395.30930908 6.97797521 399.29677703 6.97705078 403.28442383 C6.98424133 404.45112106 6.99143188 405.6178183 6.99884033 406.81987 C6.95444529 424.59105782 6.95444529 424.59105782 3.36416817 429.12513447 C-1.36015943 433.14907405 -4.79232353 433.6720529 -10.77734375 433.5859375 C-14.06083215 433.30582948 -15.77628259 432.55769183 -18.25 430.375 C-21.93367678 425.46343096 -23.3759482 422.01362833 -23.37025452 415.92707825 C-23.37231651 414.22964729 -23.37231651 414.22964729 -23.37442017 412.4979248 C-23.37082489 411.25571167 -23.36722961 410.01349854 -23.36352539 408.73364258 C-23.36367142 407.42622604 -23.36381744 406.11880951 -23.3639679 404.77177429 C-23.36425515 401.18527576 -23.35837007 397.59881058 -23.35139394 394.0123198 C-23.34514839 390.2646999 -23.34455565 386.51707926 -23.34336853 382.76945496 C-23.34025876 375.67218763 -23.33205014 368.57493569 -23.32201904 361.47767514 C-23.31084691 353.39795489 -23.30534468 345.31823391 -23.30032361 337.23850787 C-23.28986724 320.61732957 -23.27227465 303.99616675 -23.25 287.375 C-27.69816528 291.1117638 -31.98059132 294.94853995 -36.10595703 299.03808594 C-36.64514771 299.56909912 -37.18433838 300.1001123 -37.73986816 300.6472168 C-39.49881707 302.3816301 -41.25385164 304.11991822 -43.0078125 305.859375 C-43.61297573 306.45921455 -44.21813896 307.05905411 -44.84164047 307.67707062 C-48.04069514 310.84953933 -51.2361603 314.0255789 -54.42919922 317.20410156 C-57.05640671 319.81795644 -59.69069367 322.42434379 -62.33154297 325.02441406 C-65.54095214 328.18429433 -68.73771263 331.35647102 -71.92599106 334.53766632 C-73.13447931 335.73948298 -74.34718529 336.9370753 -75.56433487 338.13011932 C-87.22581679 349.57357838 -92.37523647 358.51805046 -92.59179688 375.04882812 C-92.79026101 380.24120383 -93.8847867 383.2172318 -97.25 387.375 C-101.08782566 390.76131676 -104.88371494 390.88449328 -109.8125 390.73046875 C-114.34182959 390.06994152 -117.02736 387.68196 -120.0625 384.4375 C-125.19282434 375.52693667 -122.41395974 361.95509502 -120.16015625 352.5625 C-116.3272542 339.1391177 -108.0061913 328.07149509 -97.25 319.375 C-94.58384157 316.83889808 -92.18963757 314.30034121 -89.875 311.4375 C-87.50499828 308.53089411 -84.82462617 306.2076333 -81.94921875 303.8125 C-78.78475825 301.13543916 -75.95172638 298.29450353 -73.4375 295 C-71.56628187 292.75453824 -69.78473775 291.04337716 -67.57495117 289.15991211 C-63.51974897 285.64608264 -59.66952492 281.97160618 -55.86328125 278.19140625 C-54.86593208 277.20260719 -54.86593208 277.20260719 -53.84843445 276.1938324 C-52.45642038 274.81118603 -51.06579326 273.42714199 -49.67651367 272.04174805 C-47.56419584 269.93918801 -45.44143388 267.84754994 -43.31835938 265.75585938 C-41.95767529 264.40170256 -40.59762735 263.04690617 -39.23828125 261.69140625 C-38.61109695 261.07656876 -37.98391266 260.46173126 -37.33772278 259.82826233 C-33.23760178 255.70744155 -29.9896775 251.51036542 -27.25 246.375 C-26.93240723 245.7927919 -26.61481445 245.2105838 -26.28759766 244.61073303 C-23.24129143 237.97487977 -23.8739492 230.73821788 -23.95703125 223.59375 C-23.96263591 222.17029266 -23.96690189 220.74682948 -23.96989441 219.32336426 C-23.9812749 215.60131473 -24.01068209 211.87962395 -24.04400635 208.15771484 C-24.07485507 204.34998424 -24.08843117 200.54219491 -24.10351562 196.734375 C-24.13555955 189.28108756 -24.18667187 181.82809431 -24.25 174.375 C-25.19939453 174.95507812 -26.14878906 175.53515625 -27.12695312 176.1328125 C-34.86949671 180.8374112 -42.66328368 185.28093023 -50.75 189.375 C-78.03044032 202.78009467 -78.03044032 202.78009467 -94.0625 227.5 C-96.5812218 236.3231588 -96.32204743 245.07980408 -96.03515625 254.15429688 C-95.92535316 261.33641748 -96.67464941 267.91159748 -101.0625 273.8125 C-104.9752515 276.6073225 -108.4827305 277.62301154 -113.25 277.25 C-117.35480633 276.55932513 -120.09361685 275.16436185 -123.25 272.375 C-126.6850116 266.27012156 -126.67953283 260.77560262 -126.5625 253.875 C-126.54993164 252.28945313 -126.54993164 252.28945313 -126.53710938 250.671875 C-126.41171613 242.44607811 -125.70335765 234.47227833 -124.25 226.375 C-134.39024914 231.06848674 -144.47284433 235.88079577 -154.4375 240.9375 C-155.29690186 241.35942627 -156.15630371 241.78135254 -157.04174805 242.21606445 C-164.75722143 246.18864836 -171.52771134 251.55002146 -175.1875 259.625 C-175.56777344 260.43453125 -175.94804687 261.2440625 -176.33984375 262.078125 C-177.75286377 265.6440296 -178.36652269 268.80885536 -178.42578125 272.640625 C-178.44962891 273.44886719 -178.47347656 274.25710938 -178.49804688 275.08984375 C-178.54061204 276.7640735 -178.57207959 278.43862658 -178.59179688 280.11328125 C-178.82164439 286.85903849 -180.35382422 292.56658713 -185.3125 297.375 C-190.60359615 299.17622422 -196.26921141 299.77274101 -201.44921875 297.34375 C-205.58383642 294.22328383 -207.27226945 290.98322085 -208.04296875 285.91015625 C-209.64523823 266.28991304 -205.83272107 249.71323945 -193.25 234.375 C-192.72921875 233.73949219 -192.2084375 233.10398437 -191.671875 232.44921875 C-182.12429366 221.9613453 -167.54827289 215.71812232 -155.0625 209.4375 C-152.86750543 208.32522942 -150.67361896 207.21079906 -148.47994995 206.09591675 C-146.99858861 205.3431387 -145.51675127 204.59129665 -144.03445435 203.84036255 C-138.68451087 201.12444274 -133.37490737 198.33795223 -128.07421875 195.52734375 C-116.25525291 189.2716969 -104.26938789 183.353418 -92.29296875 177.40673828 C-80.51769594 171.5561433 -68.80018841 165.62308851 -57.18969727 159.45117188 C-53.88493783 157.69731408 -50.54497943 156.02601741 -47.1875 154.375 C-35.24593873 147.70994255 -28.48778916 137.08836748 -24.25 124.375 C-24.15180491 122.88080975 -24.10816532 121.38269718 -24.09851074 119.88531494 C-24.09016708 118.96575012 -24.08182343 118.0461853 -24.07322693 117.09875488 C-24.0669503 115.58855774 -24.0669503 115.58855774 -24.06054688 114.04785156 C-24.05225357 112.98576477 -24.04396027 111.92367798 -24.03541565 110.82940674 C-24.01800202 108.51969145 -24.00283881 106.20995836 -23.98963928 103.90021515 C-23.96862266 100.24346806 -23.94159654 96.58680961 -23.91296387 92.93011475 C-23.85322762 85.16177726 -23.80112364 77.39339829 -23.75 69.625 C-23.69073597 60.63740806 -23.62835059 51.64985938 -23.55812073 42.66234589 C-23.53159441 39.0623666 -23.51074714 35.4623829 -23.4901123 31.86236572 C-23.47350192 29.64815058 -23.45662943 27.43393739 -23.43945312 25.21972656 C-23.4331765 23.7216748 -23.4331765 23.7216748 -23.42677307 22.19335938 C-23.29513961 7.50792666 -23.29513961 7.50792666 -17.91796875 1.82421875 C-12.49623407 -2.88646876 -6.45404045 -1.79278901 0 0 Z " fill="#0BBBC1" transform="translate(265.25,33.625)"/>
4
+ <path d="M0 0 C0 0.66 0 1.32 0 2 C-0.825 1.67 -1.65 1.34 -2.5 1 C-8.11464967 -0.60418562 -12.10854079 -0.98075663 -17.375 1.75 C-20.42719685 4.36616873 -21.80218859 6.21447521 -22.24774647 10.23625851 C-22.24678313 11.05636189 -22.2458198 11.87646528 -22.24482727 12.72142029 C-22.24876495 13.66734543 -22.25270264 14.61327057 -22.25675964 15.58786011 C-22.25106461 16.61903961 -22.24536957 17.65021912 -22.23950195 18.71264648 C-22.24151611 19.80425583 -22.24353027 20.89586517 -22.24560547 22.02055359 C-22.24915243 24.39300216 -22.2483821 26.76546018 -22.24382973 29.13790703 C-22.23823612 32.90146119 -22.24739839 36.66470715 -22.2610321 40.42823792 C-22.29814469 51.12983318 -22.31702023 61.83130516 -22.30541992 72.53295898 C-22.29849809 79.07998009 -22.31795815 85.62666186 -22.35130882 92.17360115 C-22.35922868 94.66086689 -22.3580326 97.14817998 -22.34728432 99.6354351 C-22.22904686 128.24501755 -22.22904686 128.24501755 -31.8125 140.875 C-32.41707031 141.69742188 -33.02164063 142.51984375 -33.64453125 143.3671875 C-39.70527935 150.14155603 -46.20604319 154.53784278 -54.3125 158.5625 C-56.36472051 159.60650123 -58.41679796 160.65078371 -60.46875 161.6953125 C-62.07169922 162.50403809 -62.07169922 162.50403809 -63.70703125 163.32910156 C-68.13653871 165.57669565 -72.5372841 167.8778679 -76.93994141 170.17749023 C-90.22025443 177.10797935 -103.59167485 183.84767736 -117.00732422 190.51171875 C-122.00919234 192.99918719 -127.00450674 195.49975978 -132 198 C-132.33 197.34 -132.66 196.68 -133 196 C-119.34380209 188.76489958 -105.58380769 181.76267636 -91.75 174.875 C-80.01336248 169.02959875 -68.30404614 163.15497797 -56.76171875 156.93164062 C-55.11833024 156.06257597 -53.45045036 155.24026935 -51.78125 154.421875 C-38.35387247 147.70818624 -30.67530846 137.02592537 -26 123 C-25.90180491 121.50580975 -25.85816532 120.00769718 -25.84851074 118.51031494 C-25.84016708 117.59075012 -25.83182343 116.6711853 -25.82322693 115.72375488 C-25.81904251 114.71695679 -25.81485809 113.71015869 -25.81054688 112.67285156 C-25.80225357 111.61076477 -25.79396027 110.54867798 -25.78541565 109.45440674 C-25.76800202 107.14469145 -25.75283881 104.83495836 -25.73963928 102.52521515 C-25.71862266 98.86846806 -25.69159654 95.21180961 -25.66296387 91.55511475 C-25.60322762 83.78677726 -25.55112364 76.01839829 -25.5 68.25 C-25.44073597 59.26240806 -25.37835059 50.27485938 -25.30812073 41.28734589 C-25.28159441 37.6873666 -25.26074714 34.0873829 -25.2401123 30.48736572 C-25.22350192 28.27315058 -25.20662943 26.05893739 -25.18945312 23.84472656 C-25.18526871 22.84602539 -25.18108429 21.84732422 -25.17677307 20.81835938 C-25.04513961 6.13292666 -25.04513961 6.13292666 -19.66796875 0.44921875 C-14.10512562 -4.38407119 -6.07478932 -3.79674333 0 0 Z " fill="#0DA3A6" transform="translate(267,35)"/>
5
+ <path d="M0 0 C0.33 0 0.66 0 1 0 C1.00219984 1.04941316 1.00219984 1.04941316 1.00444412 2.12002659 C1.04152063 19.15516475 1.10054643 36.19008581 1.18390274 53.22506046 C1.22368608 61.46311323 1.25608212 69.70107056 1.27099609 77.93920898 C1.28401631 85.12087066 1.31099027 92.3023223 1.35461307 99.48386568 C1.37721977 103.28532177 1.39291117 107.08651889 1.39188385 110.88804817 C1.39113675 114.46935508 1.40910664 118.05008969 1.44116783 121.63124847 C1.4536911 123.56574534 1.44660664 125.50033834 1.43885803 127.43486023 C1.51921132 134.14806794 1.87586061 138.59018719 6 144 C9.72540448 146.55456307 13.51684805 146.21183602 17.84375 145.61328125 C21.23414149 144.64898512 22.90683888 142.74727397 25 140 C25.92936632 137.21190105 26.13433533 135.49809232 26.15821838 132.61506653 C26.1680072 131.71904221 26.17779602 130.82301788 26.18788147 129.89984131 C26.19363693 128.91944885 26.1993924 127.9390564 26.20532227 126.92895508 C26.21522186 125.89463852 26.22512146 124.86032196 26.23532104 123.79466248 C26.26695462 120.36964216 26.29170091 116.94460797 26.31640625 113.51953125 C26.33697417 111.14726904 26.35797059 108.77501051 26.37937927 106.40275574 C26.43461668 100.1540118 26.48401865 93.9052347 26.53222656 87.65643311 C26.58242936 81.28199303 26.63812181 74.90760121 26.69335938 68.53320312 C26.80096139 56.0221769 26.90258821 43.5111095 27 31 C27.33 31 27.66 31 28 31 C28.937486 50.87901943 29.18804417 70.72405335 29.18530273 90.62158203 C29.18519964 94.7282668 29.199058 98.83478439 29.21607494 102.94142914 C29.22723841 106.1604285 29.22922092 109.3793872 29.22869301 112.59840393 C29.22985859 114.11325172 29.23419846 115.62810106 29.24202538 117.14292908 C29.34505686 139.05830548 29.34505686 139.05830548 25.61418152 143.73840332 C20.90568346 147.7830462 17.45382255 148.29699745 11.47265625 148.2109375 C8.18916785 147.93082948 6.47371741 147.18269183 4 145 C0.32163176 140.09550901 -1.12465202 136.64341134 -1.12698364 130.5655365 C-1.12980347 129.43680618 -1.13262329 128.30807587 -1.13552856 127.1451416 C-1.13350433 125.90607056 -1.1314801 124.66699951 -1.12939453 123.39038086 C-1.13114685 122.08617691 -1.13289917 120.78197296 -1.13470459 119.43824768 C-1.13926747 115.85988334 -1.13749417 112.28154779 -1.1343255 108.70318294 C-1.13179654 104.9618349 -1.13414089 101.22048936 -1.13571167 97.47914124 C-1.13753157 91.19694576 -1.13513152 84.91476205 -1.13037109 78.63256836 C-1.12492645 71.36336353 -1.12669332 64.09418674 -1.1321975 56.82498258 C-1.13673092 50.5888466 -1.13737812 44.35271907 -1.13475883 38.11658198 C-1.13319762 34.38972264 -1.13299808 30.66287649 -1.13629532 26.93601799 C-1.13971202 22.78406988 -1.13498056 18.63217036 -1.12939453 14.48022461 C-1.13141876 13.23912933 -1.13344299 11.99803406 -1.13552856 10.71932983 C-1.13270874 9.59341934 -1.12988892 8.46750885 -1.12698364 7.30747986 C-1.12660662 6.32505782 -1.12622959 5.34263578 -1.12584114 4.33044338 C-1 2 -1 2 0 0 Z " fill="#0AA3A7" transform="translate(243,319)"/>
6
+ <path d="M0 0 C2.0625 0.4375 2.0625 0.4375 4 1 C3.50298584 1.26103516 3.00597168 1.52207031 2.49389648 1.79101562 C-12.09258468 9.45148391 -12.09258468 9.45148391 -26.6328125 17.19921875 C-28.76632331 18.34022627 -30.90626431 19.46935684 -33.0546875 20.58203125 C-38.54097092 23.46195011 -43.35867731 26.61301622 -48.125 30.58203125 C-50 32 -50 32 -53 33 C-54.20882096 35.00016466 -54.20882096 35.00016466 -55 37 C-55.66 37 -56.32 37 -57 37 C-57.2475 37.50402344 -57.495 38.00804687 -57.75 38.52734375 C-58.7642384 40.53363409 -59.81432665 42.52177292 -60.875 44.50390625 C-66.96636434 56.02056986 -69.10607124 65.27464721 -69.3125 78.3125 C-69.33054688 79.17327148 -69.34859375 80.03404297 -69.3671875 80.92089844 C-69.35921566 86.0328413 -68.85246343 89.58040003 -66 94 C-62.10897105 97.24252412 -58.96864484 97.443629 -54 97 C-51.16621868 96.1025173 -51.16621868 96.1025173 -49 95 C-50 98 -50 98 -52 99 C-57.47850267 99.71774745 -62.51072316 100.03875151 -67.0625 96.5625 C-72.06586668 91.42746578 -72.0770468 85.14870276 -72.25 78.3125 C-71.88333685 61.33815291 -67.82035643 48.18993061 -57 35 C-56.47921875 34.36449219 -55.9584375 33.72898437 -55.421875 33.07421875 C-45.6004205 22.28549979 -30.51715386 15.95136162 -17.6875 9.5 C-15.29428801 8.28883207 -12.90216289 7.07556483 -10.51094055 5.86047363 C-9.03883143 5.11321884 -7.56539789 4.36856608 -6.09049988 3.62683105 C-2.83174517 2.12863371 -2.83174517 2.12863371 0 0 Z " fill="#0D9A9E" transform="translate(129,233)"/>
7
+ <path d="M0 0 C4.06002636 1.27490738 7.80409556 2.77847778 11.60546875 4.6875 C12.66161377 5.21617676 13.71775879 5.74485352 14.8059082 6.28955078 C15.9218335 6.85399902 17.03775879 7.41844727 18.1875 8 C19.34789795 8.58378418 20.5082959 9.16756836 21.70385742 9.76904297 C29.95865542 13.93488804 38.16647985 18.18216212 46.328125 22.52734375 C49.69863505 24.3203683 53.08619084 26.07640791 56.484375 27.81640625 C76.02955452 37.84800798 93.08180533 48.55148087 101.125 70 C104.0146724 80.22499464 104.78579931 91.54225101 103 102 C102.67 102 102.34 102 102 102 C101.94392578 100.31197266 101.94392578 100.31197266 101.88671875 98.58984375 C101.11728935 79.19469666 98.14184213 63.36204842 84.69921875 48.4140625 C76.73436965 41.29065188 67.53959919 36.46554651 58.0625 31.6875 C56.77023677 31.02876373 55.47841172 30.36916719 54.18701172 29.70874023 C51.63230229 28.40257888 49.07620224 27.09920939 46.51904297 25.79785156 C41.86854437 23.42194816 37.24245463 21.00186418 32.625 18.5625 C31.87831055 18.16877197 31.13162109 17.77504395 30.36230469 17.36938477 C24.88302091 14.476181 19.41601117 11.55999067 13.95703125 8.62866211 C10.7106334 6.89048659 7.44277953 5.22223192 4.125 3.625 C1 2 1 2 0 0 Z " fill="#0CA1A5" transform="translate(353,218)"/>
8
+ <path d="M0 0 C0.66 0 1.32 0 2 0 C2.45890625 0.96421875 2.9178125 1.9284375 3.390625 2.921875 C4.00998275 4.19812733 4.62979872 5.47415737 5.25 6.75 C5.55035156 7.38421875 5.85070312 8.0184375 6.16015625 8.671875 C8.008559 12.44733594 9.96352429 15.12475309 13 18 C13 18.66 13 19.32 13 20 C13.54748398 20.2221669 14.09496796 20.4443338 14.65904236 20.67323303 C17.72344101 22.41001923 20.00367754 24.74102739 22.45532227 27.22827148 C22.98753387 27.76019104 23.51974548 28.2921106 24.06808472 28.84014893 C25.8223089 30.59576381 27.56934424 32.35835385 29.31640625 34.12109375 C30.53617836 35.34459846 31.75639461 36.56766052 32.97703552 37.79029846 C36.18769887 41.00859164 39.39231438 44.23284203 42.59570312 47.45837402 C45.85381589 50.73691066 49.11756013 54.00983026 52.38085938 57.28320312 C57.65130166 62.5712292 62.91821393 67.86274123 68.18080139 73.15858459 C70.45046667 75.44247617 72.72127303 77.72514593 75 80 C74.67 80.66 74.34 81.32 74 82 C53 61 53 61 50.3347168 58.29956055 C48.06774985 55.97334659 48.06774985 55.97334659 45.5625 54.125 C43.443446 52.36773571 41.91785153 50.78730497 40.1875 48.6875 C38.08936079 46.16250766 35.92776651 43.98559029 33.421875 41.8671875 C6.85133385 18.88684887 6.85133385 18.88684887 0 4 C0 2.68 0 1.36 0 0 Z " fill="#0BA5A8" transform="translate(272,274)"/>
9
+ <path d="M0 0 C1.1598713 3.47961391 0.77842986 4.31715679 -0.375 7.6875 C-3.32572663 17.05167812 -5.43748614 29.88485138 -1.6875 39.25 C-0.13313828 42.21389428 -0.13313828 42.21389428 3 44 C5.83403643 44.39342518 5.83403643 44.39342518 8.9375 44.375 C10.49791016 44.41753906 10.49791016 44.41753906 12.08984375 44.4609375 C15.69259396 43.89030055 16.74205552 42.79843679 19 40 C21.07457958 36.88813064 21.25241944 36.12187951 21.30859375 32.578125 C21.33373047 31.71703125 21.35886719 30.8559375 21.38476562 29.96875 C21.41961752 28.17194125 21.4509311 26.37506001 21.47851562 24.578125 C21.73265409 16.24734212 24.21549102 10.7643058 29 4 C29.495 4.99 29.495 4.99 30 6 C29.0390625 8.20703125 29.0390625 8.20703125 27.625 10.8125 C23.91820579 17.65660887 23.75848194 24.01921189 23.65820312 31.67382812 C23.45973899 36.86620383 22.3652133 39.8422318 19 44 C15.16217434 47.38631676 11.36628506 47.50949328 6.4375 47.35546875 C1.90817041 46.69494152 -0.77736 44.30696 -3.8125 41.0625 C-8.98410171 32.08024439 -6.04324937 18.64032519 -3.94921875 9.15625 C-2.96076619 5.86954356 -1.62271618 3.01816119 0 0 Z " fill="#0E9C9F" transform="translate(149,377)"/>
10
+ <path d="M0 0 C5.36896354 1.56344218 10.04026533 3.98856047 14.9375 6.625 C16.63269007 7.53278075 18.3280041 8.44033005 20.0234375 9.34765625 C20.86229492 9.7977002 21.70115234 10.24774414 22.56542969 10.71142578 C24.77182448 11.87923081 26.99170694 13.00900996 29.2265625 14.12109375 C41.77808875 20.41722764 51.01898495 27.38032416 56 41 C57.27491276 46.71320278 57.32034683 52.53683792 57.51757812 58.3671875 C57.72067485 62.91961973 58.30135734 66.70869222 60 71 C57.05157843 68.71735104 56.07918933 67.3815486 55.3125 63.6875 C55.07776108 60.95738425 54.97099488 58.23477677 54.8671875 55.49609375 C54.29225034 43.10994759 52.08076376 35.72855698 43.8046875 26.421875 C35.17632608 18.97120079 24.12859963 14.38865773 13.99169922 9.30541992 C12.0534207 8.33153812 10.12023205 7.34811357 8.1875 6.36328125 C7.04667969 5.78876221 5.90585937 5.21424316 4.73046875 4.62231445 C2 3 2 3 0 0 Z " fill="#0CA3A8" transform="translate(373,257)"/>
11
+ <path d="M0 0 C-1.49346271 3.47609534 -3.47974419 5.73290945 -6.14257812 8.40136719 C-6.99686401 9.2619574 -7.8511499 10.12254761 -8.73132324 11.00921631 C-9.65529907 11.92914368 -10.5792749 12.84907104 -11.53125 13.796875 C-12.48796371 14.75493637 -13.4443804 15.71329443 -14.4005127 16.67193604 C-16.40130563 18.67567264 -18.40565949 20.67575889 -20.41259766 22.67333984 C-22.98862107 25.2379383 -25.55552099 27.81145211 -28.11985016 30.38773727 C-30.0910246 32.36612446 -32.06691997 34.339741 -34.04429626 36.3119278 C-35.45512771 37.7207719 -36.86192389 39.13365318 -38.26867676 40.54656982 C-39.12296265 41.39455139 -39.97724854 42.24253296 -40.85742188 43.11621094 C-41.61083862 43.8680365 -42.36425537 44.61986206 -43.14050293 45.39447021 C-45 47 -45 47 -47 47 C-45.71480435 44.13302508 -44.42870746 42.02392288 -42 40 C-41.34 40 -40.68 40 -40 40 C-39.7628125 39.43829102 -39.525625 38.87658203 -39.28125 38.29785156 C-37.70680643 35.47417342 -35.78315455 33.52385158 -33.5 31.234375 C-32.613125 30.34492188 -31.72625 29.45546875 -30.8125 28.5390625 C-29.884375 27.61867188 -28.95625 26.69828125 -28 25.75 C-27.071875 24.81414062 -26.14375 23.87828125 -25.1875 22.9140625 C-24.300625 22.02976562 -23.41375 21.14546875 -22.5 20.234375 C-21.6853125 19.42194336 -20.870625 18.60951172 -20.03125 17.77246094 C-18 16 -18 16 -16 16 C-15.690625 15.20335937 -15.690625 15.20335937 -15.375 14.390625 C-13.42038808 10.99226564 -10.77876283 8.48944072 -8 5.75 C-7.4534375 5.19570313 -6.906875 4.64140625 -6.34375 4.0703125 C-2.2533867 0 -2.2533867 0 0 0 Z " fill="#0CA6A8" transform="translate(227,333)"/>
12
+ <path d="M0 0 C1 3 1 3 0.171875 5.27734375 C-2.68539966 10.62295926 -5.82251655 15.14809907 -9.95703125 19.58984375 C-10.67113914 20.35782791 -10.67113914 20.35782791 -11.39967346 21.1413269 C-16.45259736 26.54342387 -21.63348705 31.8196077 -26.86401367 37.04931641 C-28.46626993 38.6538101 -30.06028188 40.26622938 -31.65429688 41.87890625 C-32.68440861 42.91194441 -33.71498945 43.94451505 -34.74609375 44.9765625 C-35.66060303 45.89518066 -36.5751123 46.81379883 -37.51733398 47.76025391 C-39.66093689 49.694113 -41.35474739 50.91439173 -44 52 C-42.63961204 48.9491121 -41.11542364 46.88095265 -38.73120117 44.55175781 C-38.06678513 43.8971759 -37.40236908 43.24259399 -36.71781921 42.56817627 C-36.00011856 41.87020935 -35.28241791 41.17224243 -34.54296875 40.453125 C-33.02266237 38.95325076 -31.50248415 37.45324662 -29.98242188 35.953125 C-27.58875086 33.6028238 -25.19266817 31.25505168 -22.79370117 28.91015625 C-20.4743674 26.63940619 -18.16456305 24.35928009 -15.85546875 22.078125 C-15.14384079 21.388255 -14.43221283 20.69838501 -13.69902039 19.98760986 C-7.66070271 14.00916686 -3.63959915 7.662314 0 0 Z " fill="#0DA7A8" transform="translate(241,274)"/>
13
+ <path d="M0 0 C2.0625 0.4375 2.0625 0.4375 4 1 C3.50298584 1.26103516 3.00597168 1.52207031 2.49389648 1.79101562 C-12.09258468 9.45148391 -12.09258468 9.45148391 -26.6328125 17.19921875 C-28.76632331 18.34022627 -30.90626431 19.46935684 -33.0546875 20.58203125 C-38.54097092 23.46195011 -43.35867731 26.61301622 -48.125 30.58203125 C-50 32 -50 32 -53 33 C-54.20882096 35.00016466 -54.20882096 35.00016466 -55 37 C-55.66 36.34 -56.32 35.68 -57 35 C-46.45765611 23.20261517 -31.61171094 16.5017571 -17.6875 9.5 C-15.29428801 8.28883207 -12.90216289 7.07556483 -10.51094055 5.86047363 C-9.03883143 5.11321884 -7.56539789 4.36856608 -6.09049988 3.62683105 C-2.83174517 2.12863371 -2.83174517 2.12863371 0 0 Z " fill="#0CA4A7" transform="translate(129,233)"/>
14
+ <path d="M0 0 C0 0.99 0 1.98 0 3 C-1.7578125 4.69140625 -1.7578125 4.69140625 -4.125 6.5625 C-13.37004837 14.51382305 -17.42135659 24.77322452 -18.82788086 36.70703125 C-19.22877361 42.04771881 -18.95423384 47.43129923 -18.78515625 52.77929688 C-18.68338189 59.43626498 -18.99005439 66.44139225 -23.47998047 71.74975586 C-25 73 -25 73 -27 73 C-25.84826645 70.53199953 -24.95216435 68.95216435 -23 67 C-21.70044964 63.4242988 -21.85816367 59.79986902 -21.82421875 56.03125 C-21.80098964 54.64061038 -21.77687113 53.24998538 -21.75195312 51.859375 C-21.71714404 49.691962 -21.68765716 47.52507777 -21.67407227 45.35742188 C-21.56445934 30.69289888 -18.87501115 19.28818901 -9 8 C-6.11602584 5.17862372 -3.13782077 2.53495243 0 0 Z " fill="#0BA0A2" transform="translate(188,235)"/>
15
+ <path d="M0 0 C11.37404044 3.256811 19.52849574 12.45237477 25.25 22.4375 C30.09765915 31.18153035 30.27057117 39.22433613 30.125 49 C30.11597656 50.15628906 30.10695313 51.31257813 30.09765625 52.50390625 C30.07424922 55.33615647 30.04145995 58.16796619 30 61 C29.67 61 29.34 61 29 61 C28.9906543 60.4016333 28.98130859 59.8032666 28.97167969 59.18676758 C28.53864751 34.83900698 28.53864751 34.83900698 16.31640625 14.3515625 C15 13 15 13 15 11 C14.34 11 13.68 11 13 11 C13 10.34 13 9.68 13 9 C12.43796875 8.73316406 11.8759375 8.46632812 11.296875 8.19140625 C8.8327333 6.91323751 6.56107799 5.47444239 4.25 3.9375 C3.45078125 3.41027344 2.6515625 2.88304687 1.828125 2.33984375 C1.22484375 1.89769531 0.6215625 1.45554688 0 1 C0 0.67 0 0.34 0 0 Z " fill="#0C9CA0" transform="translate(318,231)"/>
16
+ <path d="M0 0 C0.66 0 1.32 0 2 0 C3.10705068 12.65182948 3.11711208 25.24585809 3.0625 37.9375 C3.05747158 39.98893119 3.05291107 42.04036358 3.04882812 44.09179688 C3.0379366 49.06122823 3.02074706 54.03060042 3 59 C2.67 59 2.34 59 2 59 C1.97494385 58.22398437 1.9498877 57.44796875 1.92407227 56.6484375 C1.80732255 53.09882269 1.6849569 49.54942232 1.5625 46 C1.52318359 44.77925781 1.48386719 43.55851562 1.44335938 42.30078125 C1.22233218 35.08174322 1.22233218 35.08174322 0.46875 27.90625 C-0.18828797 22.4309336 -0.10532882 17.00844547 -0.0625 11.5 C-0.05798828 10.39140625 -0.05347656 9.2828125 -0.04882812 8.140625 C-0.03713158 5.42702601 -0.02074086 2.71354239 0 0 Z " fill="#07BABE" transform="translate(269,318)"/>
17
+ <path d="M0 0 C10.28522956 4.74014928 16.27838797 15.78913102 20.13671875 26.01171875 C22.99923182 36.24694843 23.78673532 47.5367697 22 58 C21.67 58 21.34 58 21 58 C20.96261719 56.87464844 20.92523438 55.74929688 20.88671875 54.58984375 C20.0783011 34.21191267 16.54175154 18.10416105 1.94140625 3.046875 C0 1 0 1 0 0 Z " fill="#0A9A9D" transform="translate(434,262)"/>
18
+ <path d="M0 0 C5.43520824 1.60673058 10.29926301 4.02117404 15.3359375 6.5703125 C16.65496567 7.23194901 16.65496567 7.23194901 18.00064087 7.9069519 C20.79400295 9.30920644 23.58452311 10.71701416 26.375 12.125 C28.27455439 13.07979562 30.17429203 14.03422675 32.07421875 14.98828125 C36.71827638 17.32130391 41.36001665 19.6588857 46 22 C46 22.66 46 23.32 46 24 C39.59400981 22.08615364 33.8621653 19.57142016 28 16.375 C26.3464582 15.48678547 24.69280988 14.5987692 23.0390625 13.7109375 C22.20793945 13.26202148 21.37681641 12.81310547 20.52050781 12.35058594 C18.03200128 11.01714753 15.53107481 9.71111628 13.0234375 8.4140625 C12.24097656 8.00752441 11.45851563 7.60098633 10.65234375 7.18212891 C9.1594942 6.40721708 7.66475977 5.63592332 6.16796875 4.86865234 C1.11236367 2.22472735 1.11236367 2.22472735 0 0 Z " fill="#0AA3A7" transform="translate(306,194)"/>
19
+ <path d="M0 0 C4.53005796 1.61165524 8.4128157 3.95515565 12.5 6.4375 C22.43966868 12.39087227 32.69581167 17.71058747 43 23 C40.45639868 23.95503382 39.32588072 24.12463471 36.74853516 23.13891602 C35.93690918 22.68186279 35.1252832 22.22480957 34.2890625 21.75390625 C33.38003174 21.24988281 32.47100098 20.74585938 31.53442383 20.2265625 C30.57431396 19.67742187 29.6142041 19.12828125 28.625 18.5625 C27.15293091 17.73685547 27.15293091 17.73685547 25.65112305 16.89453125 C23.67937569 15.78658624 21.71049536 14.67352227 19.74462891 13.55517578 C17.3550945 12.20120548 14.95462964 10.87257168 12.54296875 9.55859375 C11.29919647 8.87290838 10.05568256 8.186754 8.8125 7.5 C7.74644531 6.9121875 6.68039062 6.324375 5.58203125 5.71875 C3.04526062 4.0301281 1.62707646 2.54964558 0 0 Z " fill="#0CA6A9" transform="translate(274,206)"/>
20
+ <path d="M0 0 C6.55377097 5.38640924 12.47246635 11.35885127 18.4375 17.375 C19.46525983 18.40778595 20.49325285 19.44033991 21.52148438 20.47265625 C24.01701598 22.97910287 26.50938082 25.4886708 29 28 C28.01 28.33 27.02 28.66 26 29 C22.28765288 25.36170236 18.58518588 21.71374077 14.89160156 18.05639648 C13.63321627 16.81311571 12.37215409 15.57253838 11.10839844 14.3347168 C9.2943527 12.55698045 7.49009542 10.76980517 5.6875 8.98046875 C5.11878174 8.42723434 4.55006348 7.87399994 3.96411133 7.30400085 C2.58462855 5.92511857 1.28448836 4.46778022 0 3 C0 2.01 0 1.02 0 0 Z " fill="#0DA9AC" transform="translate(272,318)"/>
21
+ <path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C3.73039226 9.15541396 4.06723069 19.00810626 0.1875 26.5 C-4.08825975 31.38658257 -6.77243012 32.3603128 -13.171875 32.88671875 C-14.07679688 32.94279297 -14.07679688 32.94279297 -15 33 C-15 32.34 -15 31.68 -15 31 C-14.09507812 30.85304688 -14.09507812 30.85304688 -13.171875 30.703125 C-8.30783959 29.79307967 -5.10912858 29.14550477 -2 25 C-0.74161443 22.48322887 -0.79181027 20.58706712 -0.68359375 17.7734375 C-0.64169922 16.7421875 -0.59980469 15.7109375 -0.55664062 14.6484375 C-0.51732422 13.56820313 -0.47800781 12.48796875 -0.4375 11.375 C-0.39431641 10.28703125 -0.35113281 9.1990625 -0.30664062 8.078125 C-0.2003547 5.3855483 -0.09831943 2.69287747 0 0 Z " fill="#0BA3A5" transform="translate(373,278)"/>
22
+ <path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C4.53187564 10.05697795 5.52777349 23.13712078 2 32 C-0.46583809 35.26556936 -1.88981089 36.6792787 -5.8125 37.8125 C-6.534375 37.874375 -7.25625 37.93625 -8 38 C-3.25 34 -3.25 34 -1 34 C0.17942085 30.46173745 0.11289189 27.65851274 0.09765625 23.92578125 C0.0962413 23.2419487 0.09482635 22.55811615 0.09336853 21.8535614 C0.08777876 19.67316278 0.07522822 17.49286749 0.0625 15.3125 C0.05748367 13.83268378 0.052921 12.35286594 0.04882812 10.87304688 C0.03781271 7.24866443 0.02055512 3.6243423 0 0 Z " fill="#0CA0A4" transform="translate(367,385)"/>
23
+ <path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C1.401875 1.556875 0.80375 2.11375 0.1875 2.6875 C-2.07110933 4.88059439 -2.07110933 4.88059439 -3.375 7.5 C-5.43690102 10.67215542 -7.83857413 11.93291386 -11 14 C-16.71688187 18.88891966 -20.86887533 24.75936486 -25 31 C-25.66 30.67 -26.32 30.34 -27 30 C-21.79173577 21.85516126 -16.5197715 15.07981526 -9 9 C-7.31337542 7.35353315 -5.64488294 5.68816933 -4 4 C-2.66666667 2.66666667 -1.33333333 1.33333333 0 0 Z " fill="#0D9C9C" transform="translate(177,344)"/>
24
+ <path d="M0 0 C9.12177122 6.64206642 9.12177122 6.64206642 12 10 C12 10.66 12 11.32 12 12 C12.99 12.33 13.98 12.66 15 13 C18.34428975 16.08703669 21.2226437 19.39972332 24 23 C23.67 23.66 23.34 24.32 23 25 C19.71809541 21.76743024 16.44273543 18.52842394 13.17333984 15.28320312 C12.05956877 14.17950702 10.94401168 13.07761027 9.82666016 11.97753906 C8.22348763 10.39854926 6.62679089 8.81325886 5.03125 7.2265625 C4.52815308 6.73378815 4.02505615 6.24101379 3.50671387 5.73330688 C2.29925487 4.526244 1.14417071 3.26721404 0 2 C0 1.34 0 0.68 0 0 Z " fill="#0DA5A7" transform="translate(311,357)"/>
25
+ <path d="M0 0 C8.86015015 2.52778665 15.54646376 8.72861834 21 16 C18 16 18 16 16.3125 14.625 C15 13 15 13 15 11 C14.34 11 13.68 11 13 11 C13 10.34 13 9.68 13 9 C12.43796875 8.73316406 11.8759375 8.46632812 11.296875 8.19140625 C8.8327333 6.91323751 6.56107799 5.47444239 4.25 3.9375 C3.45078125 3.41027344 2.6515625 2.88304687 1.828125 2.33984375 C1.22484375 1.89769531 0.6215625 1.45554688 0 1 C0 0.67 0 0.34 0 0 Z " fill="#0BA9AB" transform="translate(318,231)"/>
26
+ <path d="M0 0 C0.66 0 1.32 0 2 0 C2.19397476 1.97854258 2.38001321 3.9578648 2.5625 5.9375 C2.66691406 7.03964844 2.77132813 8.14179688 2.87890625 9.27734375 C2.91886719 10.17582031 2.95882813 11.07429688 3 12 C2.67 12.33 2.34 12.66 2 13 C1.76636119 14.84891946 1.58696365 16.70488031 1.4375 18.5625 C1.35371094 19.57441406 1.26992188 20.58632813 1.18359375 21.62890625 C1.12300781 22.41136719 1.06242187 23.19382812 1 24 C0.67 24 0.34 24 0 24 C0 16.08 0 8.16 0 0 Z " fill="#09AEB1" transform="translate(269,318)"/>
27
+ <path d="M0 0 C3 3.75 3 3.75 3 6 C6.82517513 8.39073445 10.59665524 8.55966552 15 9 C14.67 9.66 14.34 10.32 14 11 C8.7046288 11.50432107 6.13295494 10.28757779 2 7 C0 4 0 4 0 0 Z " fill="#0F9EA0" transform="translate(343,413)"/>
28
+ <path d="M0 0 C0.99 0.495 0.99 0.495 2 1 C2.4140625 3.28515625 2.4140625 3.28515625 2.625 6.0625 C2.69976562 6.98160156 2.77453125 7.90070313 2.8515625 8.84765625 C2.92503906 9.91306641 2.92503906 9.91306641 3 11 C2.67 11 2.34 11 2 11 C1.67 13.64 1.34 16.28 1 19 C0.67 19 0.34 19 0 19 C0 12.73 0 6.46 0 0 Z " fill="#09ABAD" transform="translate(373,278)"/>
29
+ <path d="M0 0 C0.66 0.33 1.32 0.66 2 1 C1.401875 1.556875 0.80375 2.11375 0.1875 2.6875 C-2.10016775 4.92168042 -2.10016775 4.92168042 -3.5625 7.75 C-4.036875 8.4925 -4.51125 9.235 -5 10 C-5.99 10 -6.98 10 -8 10 C-8 7 -8 7 -6.25 5.17578125 C-5.5075 4.56089844 -4.765 3.94601562 -4 3.3125 C-3.2575 2.68988281 -2.515 2.06726563 -1.75 1.42578125 C-1.1725 0.95527344 -0.595 0.48476563 0 0 Z " fill="#0CABAE" transform="translate(177,344)"/>
30
+ <path d="M0 0 C1.5 1.375 1.5 1.375 3 3 C3 3.66 3 4.32 3 5 C3.61875 5.28875 4.2375 5.5775 4.875 5.875 C7 7 7 7 9 9 C5.45529741 8.70460812 4.21784705 8.22373481 1.6875 5.625 C0 3 0 3 0 0 Z " fill="#0E9EA2" transform="translate(348,300)"/>
31
+ <path d="M0 0 C1.98 1.65 3.96 3.3 6 5 C5.67 5.99 5.34 6.98 5 8 C2.5 5.6875 2.5 5.6875 0 3 C0 2.01 0 1.02 0 0 Z " fill="#0BB1B3" transform="translate(272,318)"/>
32
+ <path d="" fill="#008080" transform="translate(0,0)"/>
33
+ <path d="" fill="#008080" transform="translate(0,0)"/>
34
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
35
+ <path d="" fill="#008080" transform="translate(0,0)"/>
36
+ <path d="" fill="#008080" transform="translate(0,0)"/>
37
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
38
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
39
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
40
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
41
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
42
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
43
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
44
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
45
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
46
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
47
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
48
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
49
+ <path d="" fill="#0080FF" transform="translate(0,0)"/>
50
+ <path d="" fill="#008080" transform="translate(0,0)"/>
51
+ <path d="" fill="#00BFBF" transform="translate(0,0)"/>
52
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
53
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
54
+ <path d="" fill="#0080FF" transform="translate(0,0)"/>
55
+ <path d="" fill="#0080FF" transform="translate(0,0)"/>
56
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
57
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
58
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
59
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
60
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
61
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
62
+ <path d="" fill="#008080" transform="translate(0,0)"/>
63
+ <path d="" fill="#00AAAA" transform="translate(0,0)"/>
64
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
65
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
66
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
67
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
68
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
69
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
70
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
71
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
72
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
73
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
74
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
75
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
76
+ <path d="" fill="#0080FF" transform="translate(0,0)"/>
77
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
78
+ <path d="" fill="#00BFBF" transform="translate(0,0)"/>
79
+ <path d="" fill="#00FFFF" transform="translate(0,0)"/>
80
+ <path d="" fill="#008080" transform="translate(0,0)"/>
81
+ </svg>
@@ -5,6 +5,7 @@ This directory contains platform-agnostic scripts and utilities for the reposito
5
5
  ## Important Documentation
6
6
 
7
7
  - **[TOKEN_SETUP.md](TOKEN_SETUP.md)** - Instructions for setting up the `PAT_TOKEN` secret required for the SYNC workflow
8
+ - **[PRIVATE_PACKAGES.md](PRIVATE_PACKAGES.md)** - Guide for using private GitHub packages as dependencies
8
9
 
9
10
  ## Structure
10
11