gitops 1.9.0__tar.gz → 1.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.
- {gitops-1.9.0 → gitops-1.10.0}/.release-please-manifest.json +1 -1
- {gitops-1.9.0 → gitops-1.10.0}/CHANGELOG.md +15 -0
- {gitops-1.9.0 → gitops-1.10.0}/Dockerfile +2 -2
- {gitops-1.9.0 → gitops-1.10.0}/PKG-INFO +1 -1
- {gitops-1.9.0 → gitops-1.10.0}/gitops/__init__.py +1 -1
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/settings.py +10 -0
- gitops-1.10.0/gitops_server/version.py +1 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/workers/deployer/deploy.py +2 -0
- {gitops-1.9.0 → gitops-1.10.0}/pyproject.toml +1 -1
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_deploy.py +21 -0
- {gitops-1.9.0 → gitops-1.10.0}/uv.lock +14 -18
- gitops-1.9.0/gitops_server/version.py +0 -1
- {gitops-1.9.0 → gitops-1.10.0}/.dockerignore +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/.github/CODEOWNERS +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/.github/workflows/release-please.yaml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/.github/workflows/test.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/.gitignore +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/.mise.toml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/.pre-commit-config.yaml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/CLAUDE.md +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/LICENSE +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/README.md +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/.helmignore +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/CHANGELOG.md +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/Chart.yaml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/README.md +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/_helpers.tpl +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/certificate.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/deployment.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/environment.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/ingress.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/issuer.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/pdb.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/secrets.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/service.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/templates/serviceaccount.yaml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/charts/gitops/values.yaml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/docker-compose.yml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/docs/plans/2026-03-13-kms-encryption-design.md +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/common/__init__.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/common/app.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/common/utils.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/core.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/main.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/py.typed +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/settings.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/shorthands.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/__init__.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/apps.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/async_runner.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/cli.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/exceptions.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/images.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/kube.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/tags.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops/utils/yaml.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/CHANGELOG.md +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/README.md +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/__init__.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/app.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/main.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/types.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/utils/__init__.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/utils/git.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/utils/github.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/utils/github_auth.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/utils/slack.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/workers/__init__.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/workers/deployer/__init__.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/workers/deployer/hooks.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/workers/deployer/semaphore_manager.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/gitops_server/workers/deployer/worker.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/release-please-config.json +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/release.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/renovate.json +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/ruff.toml +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/secrets.example.env +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/setup.cfg +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/__init__.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/conftest.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/sample_data.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_app.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_clone_credentials.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_core.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_deploy_concurrent.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_git.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_github_auth.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_gitops_server.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_load_app_definitions.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_utils.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/test_worker_concurrency.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/utils.py +0 -0
- {gitops-1.9.0 → gitops-1.10.0}/tests/webhook_sample_data.py +0 -0
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.10.0](https://github.com/uptick/gitops/compare/gitops-v1.9.0...gitops-v1.10.0) (2026-09-22)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **deploy:** setting to skip helm's client-side OpenAPI validation ([3671513](https://github.com/uptick/gitops/commit/36715132c8e04efeb3b7f389595f6dc49c80c3f6))
|
|
9
|
+
* helm 3.22.0, and a setting to skip its OpenAPI validation ([d66fe4a](https://github.com/uptick/gitops/commit/d66fe4a6362498ec7d85e19b57dbae5f6d8ddd6c))
|
|
10
|
+
* **image:** helm 3.22.0, with helm-secrets 4.7.7 to match ([2d871bf](https://github.com/uptick/gitops/commit/2d871bfefe85d1f25e2748519cea0155e7f499bd))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* upgrade urllib3 to 2.8.0 and anyio to the patched release ([dcd9699](https://github.com/uptick/gitops/commit/dcd96990444176abdddb0e70b8db8e5c0c8d55b1))
|
|
16
|
+
* upgrade urllib3 to 2.8.0 and anyio to the patched release ([14bad7c](https://github.com/uptick/gitops/commit/14bad7c39c6743ff20054c3101ae5802eac8fc9c))
|
|
17
|
+
|
|
3
18
|
## [1.9.0](https://github.com/uptick/gitops/compare/gitops-v1.8.0...gitops-v1.9.0) (2026-09-09)
|
|
4
19
|
|
|
5
20
|
|
|
@@ -14,7 +14,7 @@ ARG TARGETARCH
|
|
|
14
14
|
## Install kubectl and dependencies.
|
|
15
15
|
##
|
|
16
16
|
ENV KUBE_LATEST_VERSION="v1.21.3"
|
|
17
|
-
ENV HELM_VERSION="v3.
|
|
17
|
+
ENV HELM_VERSION="v3.22.0" \
|
|
18
18
|
VIRTUAL_ENV="/app/.venv" \
|
|
19
19
|
PATH="/app/.venv/bin:$PATH"
|
|
20
20
|
|
|
@@ -30,7 +30,7 @@ RUN apt-get update \
|
|
|
30
30
|
&& chmod +x /usr/local/bin/helm \
|
|
31
31
|
\
|
|
32
32
|
# Install helm-secrets plugin
|
|
33
|
-
&& helm plugin install https://github.com/jkroepke/helm-secrets --version v4.
|
|
33
|
+
&& helm plugin install https://github.com/jkroepke/helm-secrets --version v4.7.7 \
|
|
34
34
|
\
|
|
35
35
|
# Download sops
|
|
36
36
|
&& wget -q https://github.com/mozilla/sops/releases/download/v3.7.3/sops-v3.7.3.linux.${TARGETARCH} -O /usr/local/bin/sops \
|
|
@@ -21,3 +21,13 @@ GITOPS_MAX_PARALLEL_DEPLOYS = os.environ.get("GITOPS_MAX_PARALLEL_DEPLOYS", "5")
|
|
|
21
21
|
# two commits before it reaches GITOPS_MAX_PARALLEL_DEPLOYS, so without a bound
|
|
22
22
|
# here a burst of pushes is only limited by how fast they arrive.
|
|
23
23
|
GITOPS_MAX_CONCURRENT_DEPLOYMENTS = os.environ.get("GITOPS_MAX_CONCURRENT_DEPLOYMENTS", "20")
|
|
24
|
+
|
|
25
|
+
# Pass --disable-openapi-validation to helm. Off by default: helm keeps checking
|
|
26
|
+
# manifests against the cluster schema before applying them, which costs each
|
|
27
|
+
# helm process a download and parse of that schema. The API server still
|
|
28
|
+
# rejects wrong types and missing fields either way.
|
|
29
|
+
GITOPS_DISABLE_OPENAPI_VALIDATION = os.environ.get("GITOPS_DISABLE_OPENAPI_VALIDATION", "").lower() in (
|
|
30
|
+
"1",
|
|
31
|
+
"true",
|
|
32
|
+
"yes",
|
|
33
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.10.0"
|
|
@@ -280,6 +280,7 @@ class Deployer:
|
|
|
280
280
|
f" --history-max {MAX_HELM_HISTORY}"
|
|
281
281
|
" --install"
|
|
282
282
|
" --timeout=600s"
|
|
283
|
+
f"{' --disable-openapi-validation' if settings.GITOPS_DISABLE_OPENAPI_VALIDATION else ''}"
|
|
283
284
|
f"{' --set skip_migrations=true' if self.skip_migrations else ''}"
|
|
284
285
|
f" -f {cfg.name}"
|
|
285
286
|
f" --namespace={app.namespace}"
|
|
@@ -312,6 +313,7 @@ class Deployer:
|
|
|
312
313
|
f" --history-max {MAX_HELM_HISTORY}"
|
|
313
314
|
" --install"
|
|
314
315
|
" --timeout=600s"
|
|
316
|
+
f"{' --disable-openapi-validation' if settings.GITOPS_DISABLE_OPENAPI_VALIDATION else ''}"
|
|
315
317
|
f"{' --set skip_migrations=true' if self.skip_migrations else ''}"
|
|
316
318
|
f" -f {cfg.name}"
|
|
317
319
|
f" --namespace={app.namespace}"
|
|
@@ -145,6 +145,27 @@ class TestDeploy:
|
|
|
145
145
|
)
|
|
146
146
|
assert post_mock.call_count == 2
|
|
147
147
|
|
|
148
|
+
@patch("gitops_server.workers.deployer.deploy.settings.GITOPS_DISABLE_OPENAPI_VALIDATION", True)
|
|
149
|
+
@patch("gitops_server.workers.deployer.deploy.run")
|
|
150
|
+
@patch("gitops_server.utils.slack.post")
|
|
151
|
+
@patch("gitops_server.workers.deployer.deploy.load_app_definitions", mock_load_app_definitions)
|
|
152
|
+
@patch("gitops_server.workers.deployer.deploy.temp_repo")
|
|
153
|
+
async def test_deployer_disable_openapi_validation_setting_adds_the_helm_flag(
|
|
154
|
+
self, temp_repo_mock, post_mock, run_mock
|
|
155
|
+
):
|
|
156
|
+
run_mock.return_value = {"exit_code": 0, "output": ""}
|
|
157
|
+
temp_repo_mock.return_value.__aenter__.return_value = "mock-repo"
|
|
158
|
+
semaphore_manager = AppSemaphoreManager()
|
|
159
|
+
deployer = await Deployer.from_push_event(SAMPLE_GITHUB_PAYLOAD, semaphore_manager)
|
|
160
|
+
await deployer.deploy()
|
|
161
|
+
assert run_mock.call_count == 4
|
|
162
|
+
for call in (run_mock.call_args_list[1], run_mock.call_args_list[3]):
|
|
163
|
+
assert re.match(
|
|
164
|
+
r"helm secrets upgrade --create-namespace --history-max 3 --install --timeout=600s"
|
|
165
|
+
r" --disable-openapi-validation -f .+\.yml --namespace=mynamespace sample-app-\d mock-repo",
|
|
166
|
+
call[0][0],
|
|
167
|
+
)
|
|
168
|
+
|
|
148
169
|
@patch("gitops_server.workers.deployer.deploy.run")
|
|
149
170
|
@patch("gitops_server.utils.slack.post")
|
|
150
171
|
@patch("gitops_server.workers.deployer.deploy.Deployer.post_result")
|
|
@@ -7,6 +7,12 @@ resolution-markers = [
|
|
|
7
7
|
"python_full_version < '3.13'",
|
|
8
8
|
]
|
|
9
9
|
|
|
10
|
+
[options]
|
|
11
|
+
|
|
12
|
+
[options.exclude-newer-package]
|
|
13
|
+
anyio = "2026-09-19T14:00:00Z"
|
|
14
|
+
urllib3 = "2026-09-16T14:00:00Z"
|
|
15
|
+
|
|
10
16
|
[[package]]
|
|
11
17
|
name = "aiohappyeyeballs"
|
|
12
18
|
version = "2.6.2"
|
|
@@ -149,16 +155,15 @@ wheels = [
|
|
|
149
155
|
|
|
150
156
|
[[package]]
|
|
151
157
|
name = "anyio"
|
|
152
|
-
version = "4.
|
|
158
|
+
version = "4.14.2"
|
|
153
159
|
source = { registry = "https://pypi.org/simple" }
|
|
154
160
|
dependencies = [
|
|
155
161
|
{ name = "idna" },
|
|
156
|
-
{ name = "sniffio" },
|
|
157
162
|
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
158
163
|
]
|
|
159
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
164
|
+
sdist = { url = "https://files.pythonhosted.org/packages/61/cc/a381afa6efea9f496eff839d4a6a1aed3bfafc7b3ab4b0d1b243a12573dd/anyio-4.14.2.tar.gz", hash = "sha256:cfa139f3ed1a23ee8f88a145ddb5ac7605b8bbfd8592baacd7ce3d8bb4313c7f", size = 260176, upload-time = "2026-07-12T20:29:07.082Z" }
|
|
160
165
|
wheels = [
|
|
161
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
166
|
+
{ url = "https://files.pythonhosted.org/packages/da/35/f2287558c17e29fafc8ef3daf819bb9834061cfa43bff8014f7df7f63bdc/anyio-4.14.2-py3-none-any.whl", hash = "sha256:9f505dda5ac9f0c8309b5e8bd445a8c2bf7246f3ce950121e45ea15bc41d1494", size = 125813, upload-time = "2026-07-12T20:29:05.763Z" },
|
|
162
167
|
]
|
|
163
168
|
|
|
164
169
|
[[package]]
|
|
@@ -495,7 +500,7 @@ wheels = [
|
|
|
495
500
|
|
|
496
501
|
[[package]]
|
|
497
502
|
name = "gitops"
|
|
498
|
-
version = "1.
|
|
503
|
+
version = "1.10.0"
|
|
499
504
|
source = { editable = "." }
|
|
500
505
|
dependencies = [
|
|
501
506
|
{ name = "boto3" },
|
|
@@ -631,7 +636,7 @@ resolution-markers = [
|
|
|
631
636
|
"python_full_version >= '3.14'",
|
|
632
637
|
]
|
|
633
638
|
dependencies = [
|
|
634
|
-
{ name = "typing-extensions"
|
|
639
|
+
{ name = "typing-extensions" },
|
|
635
640
|
]
|
|
636
641
|
sdist = { url = "https://files.pythonhosted.org/packages/b7/48/af6173dbca4454f4637a4678b67f52ca7e0c1ed7d5894d89d434fecede05/grpcio-1.80.0.tar.gz", hash = "sha256:29aca15edd0688c22ba01d7cc01cb000d72b2033f4a3c72a81a19b56fd143257", size = 12978905, upload-time = "2026-03-30T08:49:10.502Z" }
|
|
637
642
|
wheels = [
|
|
@@ -1532,15 +1537,6 @@ wheels = [
|
|
|
1532
1537
|
{ url = "https://files.pythonhosted.org/packages/25/2d/8724ef191cb64907de1e4e4436462955501e00f859a53d0aa794d0d060ff/slack_sdk-3.34.0-py2.py3-none-any.whl", hash = "sha256:c61f57f310d85be83466db5a98ab6ae3bb2e5587437b54fa0daa8fae6a0feffa", size = 292480, upload-time = "2024-12-17T22:20:28.949Z" },
|
|
1533
1538
|
]
|
|
1534
1539
|
|
|
1535
|
-
[[package]]
|
|
1536
|
-
name = "sniffio"
|
|
1537
|
-
version = "1.3.1"
|
|
1538
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1539
|
-
sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" }
|
|
1540
|
-
wheels = [
|
|
1541
|
-
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" },
|
|
1542
|
-
]
|
|
1543
|
-
|
|
1544
1540
|
[[package]]
|
|
1545
1541
|
name = "starlette"
|
|
1546
1542
|
version = "1.3.1"
|
|
@@ -1667,11 +1663,11 @@ fastapi = [
|
|
|
1667
1663
|
|
|
1668
1664
|
[[package]]
|
|
1669
1665
|
name = "urllib3"
|
|
1670
|
-
version = "2.
|
|
1666
|
+
version = "2.8.0"
|
|
1671
1667
|
source = { registry = "https://pypi.org/simple" }
|
|
1672
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1668
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" }
|
|
1673
1669
|
wheels = [
|
|
1674
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1670
|
+
{ url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" },
|
|
1675
1671
|
]
|
|
1676
1672
|
|
|
1677
1673
|
[[package]]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.9.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|