scmrepo 3.3.1__tar.gz → 3.3.2__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.
Potentially problematic release.
This version of scmrepo might be problematic. Click here for more details.
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.pre-commit-config.yaml +1 -1
- {scmrepo-3.3.1/src/scmrepo.egg-info → scmrepo-3.3.2}/PKG-INFO +2 -2
- {scmrepo-3.3.1 → scmrepo-3.3.2}/pyproject.toml +1 -1
- {scmrepo-3.3.1 → scmrepo-3.3.2/src/scmrepo.egg-info}/PKG-INFO +2 -2
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/SOURCES.txt +3 -1
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/requires.txt +1 -1
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_dulwich.py +7 -1
- scmrepo-3.3.2/tests/vendor/__init__.py +0 -0
- scmrepo-3.3.2/tests/vendor/test_paramiko_vendor.py +119 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.coveragerc +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.cruft.json +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.gitattributes +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/dependabot.yml +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/workflows/release.yaml +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/workflows/tests.yaml +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.github/workflows/update-template.yaml +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/.gitignore +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/CODE_OF_CONDUCT.rst +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/CONTRIBUTING.rst +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/LICENSE +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/README.rst +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/noxfile.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/setup.cfg +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/__init__.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/asyn.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/base.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/exceptions.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/fs.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/__init__.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/__init__.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/base.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/dulwich/__init__.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/dulwich/asyncssh_vendor.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/dulwich/client.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/gitpython.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/pygit2/__init__.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/pygit2/callbacks.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/backend/pygit2/filter.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/config.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/credentials.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/__init__.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/client.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/exceptions.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/fetch.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/object.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/pointer.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/progress.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/smudge.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/lfs/storage.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/objects.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/git/stash.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/noscm.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/progress.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/py.typed +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/urls.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo/utils.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/dependency_links.txt +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/src/scmrepo.egg-info/top_level.txt +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/__init__.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/conftest.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/docker-compose.yml +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/git-init/git.sh +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_credentials.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_fs.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_git.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_lfs.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_noscm.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_pygit2.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_scmrepo.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_stash.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/test_urls.py +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/user.key +0 -0
- {scmrepo-3.3.1 → scmrepo-3.3.2}/tests/user.key.pub +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scmrepo
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.2
|
|
4
4
|
Summary: scmrepo
|
|
5
5
|
Author-email: Iterative <support@dvc.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
|
|
|
16
16
|
Description-Content-Type: text/x-rst
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: gitpython>3
|
|
19
|
-
Requires-Dist: dulwich>=0.
|
|
19
|
+
Requires-Dist: dulwich>=0.22.1
|
|
20
20
|
Requires-Dist: pygit2>=1.14.0
|
|
21
21
|
Requires-Dist: pygtrie>=2.3.2
|
|
22
22
|
Requires-Dist: fsspec[tqdm]>=2024.2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: scmrepo
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.2
|
|
4
4
|
Summary: scmrepo
|
|
5
5
|
Author-email: Iterative <support@dvc.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
|
|
|
16
16
|
Description-Content-Type: text/x-rst
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: gitpython>3
|
|
19
|
-
Requires-Dist: dulwich>=0.
|
|
19
|
+
Requires-Dist: dulwich>=0.22.1
|
|
20
20
|
Requires-Dist: pygit2>=1.14.0
|
|
21
21
|
Requires-Dist: pygtrie>=2.3.2
|
|
22
22
|
Requires-Dist: fsspec[tqdm]>=2024.2.0
|
|
@@ -8,12 +8,18 @@ from unittest.mock import AsyncMock
|
|
|
8
8
|
import asyncssh
|
|
9
9
|
import paramiko
|
|
10
10
|
import pytest
|
|
11
|
-
from dulwich.contrib.test_paramiko_vendor import CLIENT_KEY, PASSWORD, USER, Server
|
|
12
11
|
from pytest_mock import MockerFixture
|
|
13
12
|
from pytest_test_utils.waiters import wait_until
|
|
14
13
|
|
|
15
14
|
from scmrepo.git.backend.dulwich.asyncssh_vendor import AsyncSSHVendor
|
|
16
15
|
|
|
16
|
+
from .vendor.test_paramiko_vendor import (
|
|
17
|
+
CLIENT_KEY,
|
|
18
|
+
PASSWORD,
|
|
19
|
+
USER,
|
|
20
|
+
Server,
|
|
21
|
+
)
|
|
22
|
+
|
|
17
23
|
# pylint: disable=redefined-outer-name
|
|
18
24
|
|
|
19
25
|
|
|
File without changes
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# test_paramiko_vendor.py
|
|
2
|
+
#
|
|
3
|
+
# Dulwich is dual-licensed under the Apache License, Version 2.0 and the GNU
|
|
4
|
+
# General Public License as public by the Free Software Foundation; version 2.0
|
|
5
|
+
# or (at your option) any later version. You can redistribute it and/or
|
|
6
|
+
# modify it under the terms of either of these two licenses.
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the licenses; if not, see
|
|
15
|
+
# <http://www.gnu.org/licenses/> for a copy of the GNU General Public License
|
|
16
|
+
# and <http://www.apache.org/licenses/LICENSE-2.0> for a copy of the Apache
|
|
17
|
+
# License, Version 2.0.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
"""Tests for paramiko_vendor."""
|
|
21
|
+
|
|
22
|
+
from io import StringIO
|
|
23
|
+
|
|
24
|
+
try:
|
|
25
|
+
import paramiko
|
|
26
|
+
except ImportError:
|
|
27
|
+
has_paramiko = False
|
|
28
|
+
else:
|
|
29
|
+
has_paramiko = True
|
|
30
|
+
|
|
31
|
+
class Server(paramiko.ServerInterface):
|
|
32
|
+
"""http://docs.paramiko.org/en/2.4/api/server.html."""
|
|
33
|
+
|
|
34
|
+
def __init__(self, commands, *args, **kwargs) -> None:
|
|
35
|
+
super().__init__(*args, **kwargs)
|
|
36
|
+
self.commands = commands
|
|
37
|
+
|
|
38
|
+
def check_channel_exec_request(self, channel, command):
|
|
39
|
+
self.commands.append(command)
|
|
40
|
+
return True
|
|
41
|
+
|
|
42
|
+
def check_auth_password(self, username, password):
|
|
43
|
+
if username == USER and password == PASSWORD:
|
|
44
|
+
return paramiko.AUTH_SUCCESSFUL
|
|
45
|
+
return paramiko.AUTH_FAILED
|
|
46
|
+
|
|
47
|
+
def check_auth_publickey(self, username, key):
|
|
48
|
+
pubkey = paramiko.RSAKey.from_private_key(StringIO(CLIENT_KEY))
|
|
49
|
+
if username == USER and key == pubkey:
|
|
50
|
+
return paramiko.AUTH_SUCCESSFUL
|
|
51
|
+
return paramiko.AUTH_FAILED
|
|
52
|
+
|
|
53
|
+
def check_channel_request(self, kind, chanid):
|
|
54
|
+
if kind == "session":
|
|
55
|
+
return paramiko.OPEN_SUCCEEDED
|
|
56
|
+
return paramiko.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
|
|
57
|
+
|
|
58
|
+
def get_allowed_auths(self, username):
|
|
59
|
+
return "password,publickey"
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
USER = "testuser"
|
|
63
|
+
PASSWORD = "test"
|
|
64
|
+
SERVER_KEY = """\
|
|
65
|
+
-----BEGIN RSA PRIVATE KEY-----
|
|
66
|
+
MIIEpAIBAAKCAQEAy/L1sSYAzxsMprtNXW4u/1jGXXkQmQ2xtmKVlR+RlIL3a1BH
|
|
67
|
+
bzTpPlZyjltAAwzIP8XRh0iJFKz5y3zSQChhX47ZGN0NvQsVct8R+YwsUonwfAJ+
|
|
68
|
+
JN0KBKKvC8fPHlzqBr3gX+ZxqsFH934tQ6wdQPH5eQWtdM8L826lMsH1737uyTGk
|
|
69
|
+
+mCSDjL3c6EzY83g7qhkJU2R4qbi6ne01FaWADzG8sOzXnHT+xpxtk8TTT8yCVUY
|
|
70
|
+
MmBNsSoA/ka3iWz70ghB+6Xb0WpFJZXWq1oYovviPAfZGZSrxBZMxsWMye70SdLl
|
|
71
|
+
TqsBEt0+miIcm9s0fvjWvQuhaHX6mZs5VO4r5QIDAQABAoIBAGYqeYWaYgFdrYLA
|
|
72
|
+
hUrubUCg+g3NHdFuGL4iuIgRXl4lFUh+2KoOuWDu8Uf60iA1AQNhV0sLvQ/Mbv3O
|
|
73
|
+
s4xMLisuZfaclctDiCUZNenqnDFkxEF7BjH1QJV94W5nU4wEQ3/JEmM4D2zYkfKb
|
|
74
|
+
FJW33JeyH6TOgUvohDYYEU1R+J9V8qA243p+ui1uVtNI6Pb0TXJnG5y9Ny4vkSWH
|
|
75
|
+
Fi0QoMPR1r9xJ4SEearGzA/crb4SmmDTKhGSoMsT3d5ATieLmwcS66xWz8w4oFGJ
|
|
76
|
+
yzDq24s4Fp9ccNjMf/xR8XRiekJv835gjEqwF9IXyvgOaq6XJ1iCqGPFDKa25nui
|
|
77
|
+
JnEstOkCgYEA/ZXk7aIanvdeJlTqpX578sJfCnrXLydzE8emk1b7+5mrzGxQ4/pM
|
|
78
|
+
PBQs2f8glT3t0O0mRX9NoRqnwrid88/b+cY4NCOICFZeasX336/gYQxyVeRLJS6Z
|
|
79
|
+
hnGEQqry8qS7PdKAyeHMNmZFrUh4EiHiObymEfQS+mkRUObn0cGBTw8CgYEAzeQU
|
|
80
|
+
D2baec1DawjppKaRynAvWjp+9ry1lZx9unryKVRwjRjkEpw+b3/+hdaF1IvsVSce
|
|
81
|
+
cNj+6W2guZ2tyHuPhZ64/4SJVyE2hKDSKD4xTb2nVjsMeN0bLD2UWXC9mwbx8nWa
|
|
82
|
+
2tmtUZ7a/okQb2cSdosJinRewLNqXIsBXamT1csCgYEA0cXb2RCOQQ6U3dTFPx4A
|
|
83
|
+
3vMXuA2iUKmrsqMoEx6T2LBow/Sefdkik1iFOdipVYwjXP+w9zC2QR1Rxez/DR/X
|
|
84
|
+
8ymceNUjxPHdrSoTQQG29dFcC92MpDeGXQcuyA+uZjcLhbrLOzYEvsOfxBb87NMG
|
|
85
|
+
14hNQPDNekTMREafYo9WrtUCgYAREK54+FVzcwf7fymedA/xb4r9N4v+d3W1iNsC
|
|
86
|
+
8d3Qfyc1CrMct8aVB07ZWQaOr2pPRIbJY7L9NhD0UZVt4I/sy1MaGqonhqE2LP4+
|
|
87
|
+
R6legDG2e/50ph7yc8gwAaA1kUXMiuLi8Nfkw/3yyvmJwklNegi4aRzRbA2Mzhi2
|
|
88
|
+
4q9WMQKBgQCb0JNyxHG4pvLWCF/j0Sm1FfvrpnqSv5678n1j4GX7Ka/TubOK1Y4K
|
|
89
|
+
U+Oib7dKa/zQMWehVFNTayrsq6bKVZ6q7zG+IHiRLw4wjeAxREFH6WUjDrn9vl2l
|
|
90
|
+
D48DKbBuBwuVOJWyq3qbfgJXojscgNQklrsPdXVhDwOF0dYxP89HnA==
|
|
91
|
+
-----END RSA PRIVATE KEY-----"""
|
|
92
|
+
CLIENT_KEY = """\
|
|
93
|
+
-----BEGIN RSA PRIVATE KEY-----
|
|
94
|
+
MIIEpAIBAAKCAQEAxvREKSElPOm/0z/nPO+j5rk2tjdgGcGc7We1QZ6TRXYLu7nN
|
|
95
|
+
GeEFIL4p8N1i6dmB+Eydt7xqCU79MWD6Yy4prFe1+/K1wCDUxIbFMxqQcX5zjJzd
|
|
96
|
+
i8j8PbcaUlVhP/OkjtkSxrXaGDO1BzfdV4iEBtTV/2l3zmLKJlt3jnOHLczP24CB
|
|
97
|
+
DTQKp3rKshbRefzot9Y+wnaK692RsYgsyo9YEP0GyWKG9topCHk13r46J6vGLeuj
|
|
98
|
+
ryUKqmbLJkzbJbIcEqwTDo5iHaCVqaMr5Hrb8BdMucSseqZQJsXSd+9tdRcIblUQ
|
|
99
|
+
38kZjmFMm4SFbruJcpZCNM2wNSZPIRX+3eiwNwIDAQABAoIBAHSacOBSJsr+jIi5
|
|
100
|
+
KUOTh9IPtzswVUiDKwARCjB9Sf8p4lKR4N1L/n9kNJyQhApeikgGT2GCMftmqgoo
|
|
101
|
+
tlculQoHFgemBlOmak0MV8NNzF5YKEy/GzF0CDH7gJfEpoyetVFrdA+2QS5yD6U9
|
|
102
|
+
XqKQxiBi2VEqdScmyyeT8AwzNYTnPeH/DOEcnbdRjqiy/CD79F49CQ1lX1Fuqm0K
|
|
103
|
+
I7BivBH1xo/rVnUP4F+IzocDqoga+Pjdj0LTXIgJlHQDSbhsQqWujWQDDuKb+MAw
|
|
104
|
+
sNK4Zf8ErV3j1PyA7f/M5LLq6zgstkW4qikDHo4SpZX8kFOO8tjqb7kujj7XqeaB
|
|
105
|
+
CxqrOTECgYEA73uWkrohcmDJ4KqbuL3tbExSCOUiaIV+sT1eGPNi7GCmXD4eW5Z4
|
|
106
|
+
75v2IHymW83lORSu/DrQ6sKr1nkuRpqr2iBzRmQpl/H+wahIhBXlnJ25uUjDsuPO
|
|
107
|
+
1Pq2LcmyD+jTxVnmbSe/q7O09gZQw3I6H4+BMHmpbf8tC97lqimzpJ0CgYEA1K0W
|
|
108
|
+
ZL70Xtn9quyHvbtae/BW07NZnxvUg4UaVIAL9Zu34JyplJzyzbIjrmlDbv6aRogH
|
|
109
|
+
/KtuG9tfbf55K/jjqNORiuRtzt1hUN1ye4dyW7tHx2/7lXdlqtyK40rQl8P0kqf8
|
|
110
|
+
zaS6BqjnobgSdSpg32rWoL/pcBHPdJCJEgQ8zeMCgYEA0/PK8TOhNIzrP1dgGSKn
|
|
111
|
+
hkkJ9etuB5nW5mEM7gJDFDf6JPupfJ/xiwe6z0fjKK9S57EhqgUYMB55XYnE5iIw
|
|
112
|
+
ZQ6BV9SAZ4V7VsRs4dJLdNC3tn/rDGHJBgCaym2PlbsX6rvFT+h1IC8dwv0V79Ui
|
|
113
|
+
Ehq9WTzkMoE8yhvNokvkPZUCgYEAgBAFxv5xGdh79ftdtXLmhnDvZ6S8l6Fjcxqo
|
|
114
|
+
Ay/jg66Tp43OU226iv/0mmZKM8Dd1xC8dnon4GBVc19jSYYiWBulrRPlx0Xo/o+K
|
|
115
|
+
CzZBN1lrXH1i6dqufpc0jq8TMf/N+q1q/c1uMupsKCY1/xVYpc+ok71b7J7c49zQ
|
|
116
|
+
nOeuUW8CgYA9Infooy65FTgbzca0c9kbCUBmcAPQ2ItH3JcPKWPQTDuV62HcT00o
|
|
117
|
+
fZdIV47Nez1W5Clk191RMy8TXuqI54kocciUWpThc6j44hz49oUueb8U4bLcEHzA
|
|
118
|
+
WxtWBWHwxfSmqgTXilEA3ALJp0kNolLnEttnhENwJpZHlqtes0ZA4w==
|
|
119
|
+
-----END RSA PRIVATE KEY-----"""
|
|
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
|