aiohomematic 2025.9.4__tar.gz → 2025.9.5__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 aiohomematic might be problematic. Click here for more details.
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/PKG-INFO +2 -2
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/README.md +1 -1
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/client/xml_rpc.py +4 -13
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/const.py +1 -1
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/definition.py +1 -1
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic.egg-info/PKG-INFO +2 -2
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/LICENSE +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/async_support.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/caches/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/caches/dynamic.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/caches/persistent.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/caches/visibility.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/central/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/central/decorators.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/central/xml_rpc_server.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/client/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/client/_rpc_errors.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/client/json_rpc.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/context.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/converter.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/decorators.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/exceptions.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/hmcli.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/calculated/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/calculated/climate.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/calculated/data_point.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/calculated/operating_voltage_level.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/calculated/support.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/climate.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/const.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/cover.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/data_point.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/light.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/lock.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/siren.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/support.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/switch.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/custom/valve.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/data_point.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/device.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/event.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/action.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/binary_sensor.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/button.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/data_point.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/number.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/select.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/sensor.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/switch.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/generic/text.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/binary_sensor.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/button.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/data_point.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/number.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/select.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/sensor.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/switch.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/hub/text.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/support.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/model/update.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/property_decorators.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/py.typed +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/fetch_all_device_data.fn +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/get_program_descriptions.fn +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/get_serial.fn +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/get_system_variable_descriptions.fn +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/set_program_state.fn +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/set_system_variable.fn +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/support.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/validator.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic.egg-info/SOURCES.txt +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic.egg-info/dependency_links.txt +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic.egg-info/requires.txt +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic.egg-info/top_level.txt +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic_support/__init__.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic_support/client_local.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/pyproject.toml +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/setup.cfg +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_action.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_binary_sensor.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_button.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_calculated_support.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_central.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_central_pydevccu.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_climate.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_cover.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_decorator.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_device.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_entity.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_event.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_json_rpc.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_light.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_lock.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_number.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_select.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_sensor.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_siren.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_support.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_switch.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_text.py +0 -0
- {aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/tests/test_valve.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic
|
|
3
|
-
Version: 2025.9.
|
|
3
|
+
Version: 2025.9.5
|
|
4
4
|
Summary: Homematic interface for Home Assistant running on Python 3.
|
|
5
5
|
Home-page: https://github.com/sukramj/aiohomematic
|
|
6
6
|
Author-email: SukramJ <sukramj@icloud.com>, Daniel Perna <danielperna84@gmail.com>
|
|
@@ -64,7 +64,7 @@ Use the Home Assistant custom integration "Homematic(IP) Local", which is powere
|
|
|
64
64
|
- Always enter credentials.
|
|
65
65
|
- Choose which interfaces to enable (HM, HmIP, Virtual). Default ports are typically 2001 (HM), 2010 (HmIP), 9292 (Virtual).
|
|
66
66
|
4. Network callbacks
|
|
67
|
-
- The integration needs to receive XML‑RPC callbacks from the CCU. Make sure Home Assistant is reachable from the CCU (no NAT/firewall blocking). Callbacks
|
|
67
|
+
- The integration needs to receive XML‑RPC callbacks from the CCU. Make sure Home Assistant is reachable from the CCU (no NAT/firewall blocking). Callbacks are only required for special network setups.
|
|
68
68
|
5. Verify
|
|
69
69
|
- After setup, devices should appear under Devices & Services → Homematic(IP) Local. Discovery may take a few seconds after the first connection while paramsets are fetched and cached for faster restarts.
|
|
70
70
|
|
|
@@ -36,7 +36,7 @@ Use the Home Assistant custom integration "Homematic(IP) Local", which is powere
|
|
|
36
36
|
- Always enter credentials.
|
|
37
37
|
- Choose which interfaces to enable (HM, HmIP, Virtual). Default ports are typically 2001 (HM), 2010 (HmIP), 9292 (Virtual).
|
|
38
38
|
4. Network callbacks
|
|
39
|
-
- The integration needs to receive XML‑RPC callbacks from the CCU. Make sure Home Assistant is reachable from the CCU (no NAT/firewall blocking). Callbacks
|
|
39
|
+
- The integration needs to receive XML‑RPC callbacks from the CCU. Make sure Home Assistant is reachable from the CCU (no NAT/firewall blocking). Callbacks are only required for special network setups.
|
|
40
40
|
5. Verify
|
|
41
41
|
- After setup, devices should appear under Devices & Services → Homematic(IP) Local. Discovery may take a few seconds after the first connection while paramsets are fetched and cached for faster restarts.
|
|
42
42
|
|
|
@@ -42,8 +42,7 @@ from aiohomematic.exceptions import (
|
|
|
42
42
|
NoConnectionException,
|
|
43
43
|
UnsupportedException,
|
|
44
44
|
)
|
|
45
|
-
from aiohomematic.
|
|
46
|
-
from aiohomematic.support import LogContextMixin, extract_exc_args, get_tls_context, log_boundary_error
|
|
45
|
+
from aiohomematic.support import extract_exc_args, get_tls_context, log_boundary_error
|
|
47
46
|
|
|
48
47
|
_LOGGER: Final = logging.getLogger(__name__)
|
|
49
48
|
|
|
@@ -84,7 +83,7 @@ _OS_ERROR_CODES: Final[dict[int, str]] = {
|
|
|
84
83
|
|
|
85
84
|
|
|
86
85
|
# noinspection PyProtectedMember,PyUnresolvedReferences
|
|
87
|
-
class XmlRpcProxy(xmlrpc.client.ServerProxy
|
|
86
|
+
class XmlRpcProxy(xmlrpc.client.ServerProxy):
|
|
88
87
|
"""ServerProxy implementation with ThreadPoolExecutor when request is executing."""
|
|
89
88
|
|
|
90
89
|
def __init__(
|
|
@@ -107,6 +106,8 @@ class XmlRpcProxy(xmlrpc.client.ServerProxy, LogContextMixin):
|
|
|
107
106
|
self._supported_methods: tuple[str, ...] = ()
|
|
108
107
|
if self._tls:
|
|
109
108
|
kwargs[_CONTEXT] = get_tls_context(self._verify_tls)
|
|
109
|
+
# Due to magic method the log_context must be defined manually.
|
|
110
|
+
self.log_context: Final[Mapping[str, Any]] = {"interface_id": self._interface_id, "tls": self._tls}
|
|
110
111
|
xmlrpc.client.ServerProxy.__init__( # type: ignore[misc]
|
|
111
112
|
self,
|
|
112
113
|
encoding=ISO_8859_1,
|
|
@@ -121,21 +122,11 @@ class XmlRpcProxy(xmlrpc.client.ServerProxy, LogContextMixin):
|
|
|
121
122
|
supported_methods.append(_XmlRpcMethod.PING)
|
|
122
123
|
self._supported_methods = tuple(supported_methods)
|
|
123
124
|
|
|
124
|
-
@hm_property(log_context=True)
|
|
125
|
-
def interface_id(self) -> str:
|
|
126
|
-
"""Return the interface_id."""
|
|
127
|
-
return self._interface_id
|
|
128
|
-
|
|
129
125
|
@property
|
|
130
126
|
def supported_methods(self) -> tuple[str, ...]:
|
|
131
127
|
"""Return the supported methods."""
|
|
132
128
|
return self._supported_methods
|
|
133
129
|
|
|
134
|
-
@hm_property(log_context=True)
|
|
135
|
-
def tls(self) -> bool:
|
|
136
|
-
"""Return tls."""
|
|
137
|
-
return self._tls
|
|
138
|
-
|
|
139
130
|
async def __async_request(self, *args, **kwargs): # type: ignore[no-untyped-def]
|
|
140
131
|
"""Call method on server side."""
|
|
141
132
|
parent = xmlrpc.client.ServerProxy
|
|
@@ -19,7 +19,7 @@ import sys
|
|
|
19
19
|
from types import MappingProxyType
|
|
20
20
|
from typing import Any, Final, NamedTuple, Required, TypeAlias, TypedDict
|
|
21
21
|
|
|
22
|
-
VERSION: Final = "2025.9.
|
|
22
|
+
VERSION: Final = "2025.9.5"
|
|
23
23
|
|
|
24
24
|
# Detect test speedup mode via environment
|
|
25
25
|
_TEST_SPEEDUP: Final = (
|
|
@@ -714,7 +714,7 @@ def get_default_data_points() -> Mapping[int | tuple[int, ...], tuple[Parameter,
|
|
|
714
714
|
def get_include_default_data_points(device_profile: DeviceProfile) -> bool:
|
|
715
715
|
"""Return if default data points should be included."""
|
|
716
716
|
device = _get_device_definition(device_profile)
|
|
717
|
-
return device.get(CDPD.INCLUDE_DEFAULT_DPS, DEFAULT_INCLUDE_DEFAULT_DPS)
|
|
717
|
+
return bool(device.get(CDPD.INCLUDE_DEFAULT_DPS, DEFAULT_INCLUDE_DEFAULT_DPS))
|
|
718
718
|
|
|
719
719
|
|
|
720
720
|
def _get_device_definition(device_profile: DeviceProfile) -> Mapping[CDPD, Any]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic
|
|
3
|
-
Version: 2025.9.
|
|
3
|
+
Version: 2025.9.5
|
|
4
4
|
Summary: Homematic interface for Home Assistant running on Python 3.
|
|
5
5
|
Home-page: https://github.com/sukramj/aiohomematic
|
|
6
6
|
Author-email: SukramJ <sukramj@icloud.com>, Daniel Perna <danielperna84@gmail.com>
|
|
@@ -64,7 +64,7 @@ Use the Home Assistant custom integration "Homematic(IP) Local", which is powere
|
|
|
64
64
|
- Always enter credentials.
|
|
65
65
|
- Choose which interfaces to enable (HM, HmIP, Virtual). Default ports are typically 2001 (HM), 2010 (HmIP), 9292 (Virtual).
|
|
66
66
|
4. Network callbacks
|
|
67
|
-
- The integration needs to receive XML‑RPC callbacks from the CCU. Make sure Home Assistant is reachable from the CCU (no NAT/firewall blocking). Callbacks
|
|
67
|
+
- The integration needs to receive XML‑RPC callbacks from the CCU. Make sure Home Assistant is reachable from the CCU (no NAT/firewall blocking). Callbacks are only required for special network setups.
|
|
68
68
|
5. Verify
|
|
69
69
|
- After setup, devices should appear under Devices & Services → Homematic(IP) Local. Discovery may take a few seconds after the first connection while paramsets are fetched and cached for faster restarts.
|
|
70
70
|
|
|
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
|
{aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/fetch_all_device_data.fn
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/set_program_state.fn
RENAMED
|
File without changes
|
{aiohomematic-2025.9.4 → aiohomematic-2025.9.5}/aiohomematic/rega_scripts/set_system_variable.fn
RENAMED
|
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
|