cuenca 2.0.0.dev7__tar.gz → 2.0.1__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.
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/PKG-INFO +2 -2
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/endpoints.py +5 -4
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/files.py +2 -2
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/sessions.py +4 -3
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/user_credentials.py +7 -2
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/users.py +3 -2
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/version.py +1 -1
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca.egg-info/PKG-INFO +2 -2
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca.egg-info/requires.txt +1 -1
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/setup.py +1 -1
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_user_credentials.py +3 -3
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/LICENSE +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/README.md +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/__init__.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/exc.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/http/__init__.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/http/client.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/jwt.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/py.typed +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/__init__.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/accounts.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/api_keys.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/arpc.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/balance_entries.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/base.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/bill_payments.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/card_activations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/card_transactions.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/card_validations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/cards.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/cash_references.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/clabes.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/commissions.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/curp_validations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/deposits.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/file_batches.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/identities.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/identity_events.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/kyc_validations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/kyc_verifications.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/limited_wallets.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/login_tokens.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/otps.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/platforms.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/questionnaires.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/resources.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/savings.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/service_providers.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/statements.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/transfers.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/user_events.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/user_lists_validation.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/user_logins.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/verifications.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/wallet_transactions.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/webhooks.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca/resources/whatsapp_transfers.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca.egg-info/SOURCES.txt +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca.egg-info/dependency_links.txt +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/cuenca.egg-info/top_level.txt +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/setup.cfg +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/__init__.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/conftest.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/http/__init__.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/http/conftest.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/http/test_client.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/__init__.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_accounts.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_api_keys.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_arpc.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_balance_entries.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_bill_payments.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_card_activations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_card_transactions.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_card_validations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_cards.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_cash_references.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_clabes.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_commissions.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_curp_validations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_deposits.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_endpoints.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_file_batches.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_files.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_identities.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_identity_events.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_kyc_validations.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_kyc_verifications.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_limited_wallets.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_login_tokens.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_otps.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_platforms.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_questionnaires.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_resources.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_savings.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_service_providers.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_sessions.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_statements.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_transfers.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_user_events.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_user_lists_validation.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_user_logins.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_users.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_verifications.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_wallet_transactions.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_webhooks.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/resources/test_whatsapp_transfers.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/test_cuenca.py +0 -0
- {cuenca-2.0.0.dev7 → cuenca-2.0.1}/tests/test_jwt.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: cuenca
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Cuenca API Client
|
|
5
5
|
Home-page: https://github.com/cuenca-mx/cuenca-python
|
|
6
6
|
Author: Cuenca
|
|
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
|
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: requests>=2.32.0
|
|
19
|
-
Requires-Dist: cuenca-validations>=2.0.
|
|
19
|
+
Requires-Dist: cuenca-validations>=2.0.4
|
|
20
20
|
Requires-Dist: pydantic-extra-types>=2.10.0
|
|
21
21
|
Dynamic: author
|
|
22
22
|
Dynamic: author-email
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
from typing import ClassVar, Optional
|
|
2
2
|
|
|
3
3
|
from cuenca_validations.types.enums import WebhookEvent
|
|
4
|
+
from cuenca_validations.types.general import SerializableHttpUrl
|
|
4
5
|
from cuenca_validations.types.requests import (
|
|
5
6
|
EndpointRequest,
|
|
6
7
|
EndpointUpdateRequest,
|
|
7
8
|
)
|
|
8
|
-
from pydantic import ConfigDict, Field
|
|
9
|
+
from pydantic import ConfigDict, Field
|
|
9
10
|
|
|
10
11
|
from ..http import Session, session as global_session
|
|
11
12
|
from .base import Creatable, Deactivable, Queryable, Retrievable, Updateable
|
|
@@ -14,7 +15,7 @@ from .base import Creatable, Deactivable, Queryable, Retrievable, Updateable
|
|
|
14
15
|
class Endpoint(Creatable, Deactivable, Retrievable, Queryable, Updateable):
|
|
15
16
|
_resource: ClassVar = 'endpoints'
|
|
16
17
|
|
|
17
|
-
url:
|
|
18
|
+
url: SerializableHttpUrl = Field(description='HTTPS url to send webhooks')
|
|
18
19
|
secret: str = Field(
|
|
19
20
|
description='token to verify the webhook is sent by Cuenca '
|
|
20
21
|
'using HMAC algorithm',
|
|
@@ -51,7 +52,7 @@ class Endpoint(Creatable, Deactivable, Retrievable, Queryable, Updateable):
|
|
|
51
52
|
@classmethod
|
|
52
53
|
def create(
|
|
53
54
|
cls,
|
|
54
|
-
url:
|
|
55
|
+
url: SerializableHttpUrl,
|
|
55
56
|
events: Optional[list[WebhookEvent]] = None,
|
|
56
57
|
*,
|
|
57
58
|
session: Session = global_session,
|
|
@@ -72,7 +73,7 @@ class Endpoint(Creatable, Deactivable, Retrievable, Queryable, Updateable):
|
|
|
72
73
|
def update(
|
|
73
74
|
cls,
|
|
74
75
|
endpoint_id: str,
|
|
75
|
-
url: Optional[
|
|
76
|
+
url: Optional[SerializableHttpUrl] = None,
|
|
76
77
|
events: Optional[list[WebhookEvent]] = None,
|
|
77
78
|
is_enable: Optional[bool] = None,
|
|
78
79
|
*,
|
|
@@ -2,7 +2,7 @@ from io import BytesIO
|
|
|
2
2
|
from typing import ClassVar, Optional
|
|
3
3
|
|
|
4
4
|
from cuenca_validations.types import FileQuery, FileUploadRequest, KYCFileType
|
|
5
|
-
from
|
|
5
|
+
from cuenca_validations.types.general import SerializableHttpUrl
|
|
6
6
|
|
|
7
7
|
from ..http import Session, session as global_session
|
|
8
8
|
from .base import Downloadable, Queryable, Uploadable
|
|
@@ -14,7 +14,7 @@ class File(Downloadable, Queryable, Uploadable):
|
|
|
14
14
|
|
|
15
15
|
extension: str
|
|
16
16
|
type: KYCFileType
|
|
17
|
-
url:
|
|
17
|
+
url: SerializableHttpUrl
|
|
18
18
|
user_id: str
|
|
19
19
|
|
|
20
20
|
@classmethod
|
|
@@ -2,7 +2,8 @@ import datetime as dt
|
|
|
2
2
|
from typing import ClassVar, Optional
|
|
3
3
|
|
|
4
4
|
from cuenca_validations.types import SessionRequest, SessionType
|
|
5
|
-
from
|
|
5
|
+
from cuenca_validations.types.general import SerializableAnyUrl
|
|
6
|
+
from pydantic import ConfigDict
|
|
6
7
|
|
|
7
8
|
from .. import http
|
|
8
9
|
from .base import Creatable, Queryable, Retrievable
|
|
@@ -16,8 +17,8 @@ class Session(Creatable, Retrievable, Queryable):
|
|
|
16
17
|
user_id: str
|
|
17
18
|
platform_id: str
|
|
18
19
|
expires_at: dt.datetime
|
|
19
|
-
success_url: Optional[
|
|
20
|
-
failure_url: Optional[
|
|
20
|
+
success_url: Optional[SerializableAnyUrl] = None
|
|
21
|
+
failure_url: Optional[SerializableAnyUrl] = None
|
|
21
22
|
type: Optional[SessionType] = None
|
|
22
23
|
|
|
23
24
|
model_config = ConfigDict(
|
|
@@ -25,7 +25,9 @@ class UserCredential(Creatable, Updateable):
|
|
|
25
25
|
session: Session = global_session,
|
|
26
26
|
) -> 'UserCredential':
|
|
27
27
|
req = UserCredentialRequest(password=password, user_id=user_id)
|
|
28
|
-
|
|
28
|
+
data = req.model_dump()
|
|
29
|
+
data['password'] = data['password'].get_secret_value()
|
|
30
|
+
return cls._create(**data, session=session)
|
|
29
31
|
|
|
30
32
|
@classmethod
|
|
31
33
|
def update(
|
|
@@ -40,4 +42,7 @@ class UserCredential(Creatable, Updateable):
|
|
|
40
42
|
is_active=is_active,
|
|
41
43
|
password=password,
|
|
42
44
|
)
|
|
43
|
-
|
|
45
|
+
data = req.model_dump()
|
|
46
|
+
if password:
|
|
47
|
+
data['password'] = data['password'].get_secret_value()
|
|
48
|
+
return cls._update(id=user_id, **data, session=session)
|
|
@@ -15,8 +15,9 @@ from cuenca_validations.types import (
|
|
|
15
15
|
UserUpdateRequest,
|
|
16
16
|
)
|
|
17
17
|
from cuenca_validations.types.enums import Country, Gender, State
|
|
18
|
+
from cuenca_validations.types.general import SerializableHttpUrl
|
|
18
19
|
from cuenca_validations.types.identities import Curp
|
|
19
|
-
from pydantic import ConfigDict, EmailStr, Field
|
|
20
|
+
from pydantic import ConfigDict, EmailStr, Field
|
|
20
21
|
|
|
21
22
|
from ..http import Session, session as global_session
|
|
22
23
|
from .balance_entries import BalanceEntry
|
|
@@ -147,7 +148,7 @@ class User(Creatable, Retrievable, Updateable, Queryable):
|
|
|
147
148
|
status: Optional[UserStatus] = None,
|
|
148
149
|
email_verification_id: Optional[str] = None,
|
|
149
150
|
phone_verification_id: Optional[str] = None,
|
|
150
|
-
curp_document: Optional[
|
|
151
|
+
curp_document: Optional[SerializableHttpUrl] = None,
|
|
151
152
|
*,
|
|
152
153
|
session: Session = global_session,
|
|
153
154
|
) -> 'User':
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: cuenca
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Cuenca API Client
|
|
5
5
|
Home-page: https://github.com/cuenca-mx/cuenca-python
|
|
6
6
|
Author: Cuenca
|
|
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
|
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Requires-Dist: requests>=2.32.0
|
|
19
|
-
Requires-Dist: cuenca-validations>=2.0.
|
|
19
|
+
Requires-Dist: cuenca-validations>=2.0.4
|
|
20
20
|
Requires-Dist: pydantic-extra-types>=2.10.0
|
|
21
21
|
Dynamic: author
|
|
22
22
|
Dynamic: author-email
|
|
@@ -7,9 +7,9 @@ from cuenca.http import Session
|
|
|
7
7
|
|
|
8
8
|
@pytest.mark.vcr
|
|
9
9
|
def test_update_password():
|
|
10
|
-
UserCredential.create('
|
|
11
|
-
UserLogin.create('
|
|
12
|
-
UserCredential.update(password='
|
|
10
|
+
UserCredential.create('22222222')
|
|
11
|
+
UserLogin.create('22222222')
|
|
12
|
+
UserCredential.update(password='11111111')
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@pytest.mark.vcr
|
|
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
|
|
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
|