qolsys-controller 0.0.38__tar.gz → 0.0.40__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 qolsys-controller might be problematic. Click here for more details.
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/PKG-INFO +1 -1
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/pyproject.toml +1 -1
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_doorlock.py +1 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_eu_event.py +11 -2
- qolsys_controller-0.0.40/qolsys_controller/database/table_powerg_device.py +47 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_sensor.py +1 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_user.py +1 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_zwave_node.py +1 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_zwave_other.py +14 -1
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/enum.py +7 -4
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/panel.py +13 -0
- qolsys_controller-0.0.38/qolsys_controller/database/table_powerg_device.py +0 -23
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/.github/workflows/build.yml +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/.github/workflows/publish.yml +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/.gitignore +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/Info_mqtt.md +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/LICENSE +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/README.md +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/bin/qolsys.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/example.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/info_pairing.md +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/info_qolsys.md +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/__init__.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/controller.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/db.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_alarmedsensor.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_automation.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_country_locale.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_dashboard_msgs.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_dimmerlight.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_heat_map.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_history.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_iqremotesettings.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_iqrouter_network_config.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_iqrouter_user_device.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_master_slave.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_nest_device.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_output_rules.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_partition.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_pgm_outputs.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_qolsyssettings.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_scene.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_shades.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_smartsocket.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_state.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_tcc.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_thermostat.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_trouble_conditions.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_virtual_device.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_weather.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_zigbee_device.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_zwave_association_group.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_zwave_history.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/enum_zwave.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/errors.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/mdns.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/mqtt_command_queue.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/observable.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/partition.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/pki.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/plugin.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/plugin_c4.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/plugin_remote.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/scene.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/settings.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/state.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/task_manager.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/utils_mqtt.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zone.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zwave_device.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zwave_dimmer.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zwave_garagedoor.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zwave_generic.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zwave_lock.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zwave_outlet.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/zwave_thermostat.py +0 -0
- {qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/requirements.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qolsys-controller
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.40
|
|
4
4
|
Summary: A Python module that emulates a virtual IQ Remote device, enabling full local control of a Qolsys IQ Panel
|
|
5
5
|
Project-URL: Homepage, https://github.com/EHylands/QolsysController
|
|
6
6
|
Project-URL: Issues, https://github.com/EHylands/QolsysController/issues
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_eu_event.py
RENAMED
|
@@ -13,12 +13,21 @@ class QolsysTableEuEvent(QolsysTable):
|
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.EUEventContentProvider/eu_event"
|
|
14
14
|
self._table = "eu_event"
|
|
15
15
|
self._abort_on_error = False
|
|
16
|
-
self._implemented =
|
|
16
|
+
self._implemented = True
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
self._columns = [
|
|
20
20
|
"_id",
|
|
21
|
+
"version",
|
|
22
|
+
"opr",
|
|
23
|
+
"partition_id",
|
|
24
|
+
"history_id",
|
|
25
|
+
"device_id",
|
|
26
|
+
"device",
|
|
27
|
+
"events",
|
|
28
|
+
"time",
|
|
29
|
+
"ack",
|
|
30
|
+
"type",
|
|
21
31
|
]
|
|
22
32
|
|
|
23
33
|
self._create_table()
|
|
24
|
-
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import logging # noqa: INP001
|
|
2
|
+
import sqlite3
|
|
3
|
+
|
|
4
|
+
from .table import QolsysTable
|
|
5
|
+
|
|
6
|
+
LOGGER = logging.getLogger(__name__)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class QolsysTablePowerGDevice(QolsysTable):
|
|
10
|
+
|
|
11
|
+
def __init__(self, db: sqlite3.Connection, cursor: sqlite3.Cursor) -> None:
|
|
12
|
+
super().__init__(db, cursor)
|
|
13
|
+
self._uri = "content://com.qolsys.qolsysprovider.PowerGDeviceContentProvider/powerg_device"
|
|
14
|
+
self._table = "powerg_device"
|
|
15
|
+
self._abort_on_error = False
|
|
16
|
+
self._implemented = False
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
self._columns = [
|
|
20
|
+
"_id",
|
|
21
|
+
"avg_link_quality",
|
|
22
|
+
"battery_voltage",
|
|
23
|
+
"capabilities",
|
|
24
|
+
"dealer_code",
|
|
25
|
+
"extras",
|
|
26
|
+
"firmware_version",
|
|
27
|
+
"led",
|
|
28
|
+
"light",
|
|
29
|
+
"link_quality",
|
|
30
|
+
"link_status",
|
|
31
|
+
"longID",
|
|
32
|
+
"manufacturing_id",
|
|
33
|
+
"notification_period",
|
|
34
|
+
"opr",
|
|
35
|
+
"parent_node",
|
|
36
|
+
"partition_id",
|
|
37
|
+
"radio_id",
|
|
38
|
+
"radio_version",
|
|
39
|
+
"shortID",
|
|
40
|
+
"status_data",
|
|
41
|
+
"supported_type",
|
|
42
|
+
"temperature",
|
|
43
|
+
"version",
|
|
44
|
+
"writeable_capabilities",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
self._create_table()
|
|
@@ -13,10 +13,23 @@ class QolsysTableZwaveOther(QolsysTable):
|
|
|
13
13
|
self._uri = "content://com.qolsys.qolsysprovider.ZwaveOtherDeviceContentProvider/zwave_other"
|
|
14
14
|
self._table = "zwave_other"
|
|
15
15
|
self._abort_on_error = False
|
|
16
|
-
self._implemented =
|
|
16
|
+
self._implemented = True
|
|
17
17
|
|
|
18
18
|
self._columns = [
|
|
19
19
|
"_id",
|
|
20
|
+
"created_date",
|
|
21
|
+
"device_name",
|
|
22
|
+
"device_params_1",
|
|
23
|
+
"device_params_2",
|
|
24
|
+
"endpoint",
|
|
25
|
+
"last_updated_date",
|
|
26
|
+
"node_id",
|
|
27
|
+
"node_type",
|
|
28
|
+
"opr",
|
|
29
|
+
"paired_status",
|
|
30
|
+
"partition_id",
|
|
31
|
+
"status",
|
|
32
|
+
"version",
|
|
20
33
|
]
|
|
21
34
|
|
|
22
35
|
self._create_table()
|
|
@@ -47,6 +47,7 @@ class ZoneStatus(StrEnum):
|
|
|
47
47
|
|
|
48
48
|
class ZoneSensorType(StrEnum):
|
|
49
49
|
DOOR_WINDOW = "Door_Window"
|
|
50
|
+
DOORBELL = "Doorbell"
|
|
50
51
|
MOTION = "Motion"
|
|
51
52
|
GLASS_BREAK = "GlassBreak"
|
|
52
53
|
KEY_FOB = "KeyFob"
|
|
@@ -62,7 +63,6 @@ class ZoneSensorType(StrEnum):
|
|
|
62
63
|
SHOCK = "Shock"
|
|
63
64
|
FREEZE = "Freeze"
|
|
64
65
|
TILT = "Tilt"
|
|
65
|
-
DOORBELL = "Doorbell"
|
|
66
66
|
SMOKE_M = "Smoke_M"
|
|
67
67
|
# DOOR_WINDOW_M = "" #TBD
|
|
68
68
|
# OCCUPANCY = "" #TBD
|
|
@@ -73,22 +73,26 @@ class ZoneSensorType(StrEnum):
|
|
|
73
73
|
BLUETOOTH = "Bluetooth"
|
|
74
74
|
TAKEOVER_MODULE = "TakeoverModule"
|
|
75
75
|
TRANSLATOR = "Translator"
|
|
76
|
+
TAMPER = "Tamper Sensor"
|
|
76
77
|
|
|
77
78
|
|
|
78
79
|
class ZoneSensorGroup(StrEnum):
|
|
80
|
+
CO = "co"
|
|
79
81
|
FIXED_INTRUSION = "fixedintrusion"
|
|
80
|
-
MOBILE_INTRUSION = "mobileintrusion"
|
|
81
82
|
FIXED_SILENT = "fixedsilentkey"
|
|
83
|
+
MOBILE_INTRUSION = "mobileintrusion"
|
|
82
84
|
MOBILE_SILENT = "mobilesilentkey"
|
|
83
85
|
FIXED_AUXILIARY = "fixedmedical"
|
|
84
86
|
FIXED_SILENT_AUXILIARY = "fixedsilentmedical"
|
|
87
|
+
LOCAL_SAFETY_SENSOR = "localsafety"
|
|
85
88
|
MOBILE_AUXILIARY = "mobilemedical"
|
|
86
89
|
MOBILE_SILENT_AUXILIARY = "mobilesilentmedical"
|
|
87
90
|
SAFETY_MOTION = "safetymotion"
|
|
88
91
|
GLASS_BREAK = "glassbreak"
|
|
89
92
|
GLASS_BREAK_AWAY_ONLY = "glassbreakawayonly"
|
|
90
93
|
SMOKE_HEAT = "smoke_heat"
|
|
91
|
-
|
|
94
|
+
TAMPER_ZONE = "tamperzone"
|
|
95
|
+
SHOCK = "shock"
|
|
92
96
|
|
|
93
97
|
|
|
94
98
|
# ENTRY_EXIT_NORMAL_DELAY = "" #TBD
|
|
@@ -96,7 +100,6 @@ class ZoneSensorGroup(StrEnum):
|
|
|
96
100
|
# INSTANT_PERIMETER_DW = "" #TBD
|
|
97
101
|
# INSTRANT_INTERIOR_DOOR = "" #TBD
|
|
98
102
|
# AWAY_INSTANT_FOLLOWER_DELAY = "" #TBD
|
|
99
|
-
# LOCAL_SAFETY_SENSOR = "" #TBD
|
|
100
103
|
# REPORTING_SAFETY_SENSOR = "" #TBD
|
|
101
104
|
# DELAYED_REPORTING_SAFETY_SENSOR = "" #TBD
|
|
102
105
|
# AWAY_INSTANT_MOTION = "" #TBD
|
|
@@ -516,6 +516,12 @@ class QolsysPanel(QolsysObservable):
|
|
|
516
516
|
self.db.table_trouble_conditions.update(selection,selection_argument,content_values)
|
|
517
517
|
# No action needed
|
|
518
518
|
|
|
519
|
+
# Update EU_EVENT:
|
|
520
|
+
case self.db.table_eu_event:
|
|
521
|
+
self.db.table_eu_event.update(selection,selection_argument,content_values)
|
|
522
|
+
# No action needed
|
|
523
|
+
|
|
524
|
+
|
|
519
525
|
|
|
520
526
|
case _:
|
|
521
527
|
LOGGER.debug("iq2meid updating unknow uri:%s", uri)
|
|
@@ -592,6 +598,9 @@ class QolsysPanel(QolsysObservable):
|
|
|
592
598
|
self.db.table_dashboard_msgs.delete(selection, selection_argument)
|
|
593
599
|
# No action needed
|
|
594
600
|
|
|
601
|
+
case self.db.table_eu_event:
|
|
602
|
+
self.db.table_eu_event.delete(selection,selection_argument)
|
|
603
|
+
|
|
595
604
|
case _:
|
|
596
605
|
LOGGER.debug("iq2meid deleting unknown uri:%s", uri)
|
|
597
606
|
LOGGER.debug(data)
|
|
@@ -716,6 +725,10 @@ class QolsysPanel(QolsysObservable):
|
|
|
716
725
|
self.db.table_dashboard_msgs.insert(data=content_values)
|
|
717
726
|
# No action needed
|
|
718
727
|
|
|
728
|
+
# EU_EVENT
|
|
729
|
+
case self.db.table_eu_event:
|
|
730
|
+
self.db.table_eu_event.insert(data=content_values)
|
|
731
|
+
|
|
719
732
|
case _:
|
|
720
733
|
LOGGER.debug("iq2meid inserting unknow uri:%s", uri)
|
|
721
734
|
LOGGER.debug(data)
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import logging # noqa: INP001
|
|
2
|
-
import sqlite3
|
|
3
|
-
|
|
4
|
-
from .table import QolsysTable
|
|
5
|
-
|
|
6
|
-
LOGGER = logging.getLogger(__name__)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class QolsysTablePowerGDevice(QolsysTable):
|
|
10
|
-
|
|
11
|
-
def __init__(self, db: sqlite3.Connection, cursor: sqlite3.Cursor) -> None:
|
|
12
|
-
super().__init__(db, cursor)
|
|
13
|
-
self._uri = "content://com.qolsys.qolsysprovider.PowerGDeviceContentProvider/powerg_device"
|
|
14
|
-
self._table = "powerg_device"
|
|
15
|
-
self._abort_on_error = False
|
|
16
|
-
self._implemented = False
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
self._columns = [
|
|
20
|
-
"_id",
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
self._create_table()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_automation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_heat_map.py
RENAMED
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_history.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_partition.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_scene.py
RENAMED
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_shades.py
RENAMED
|
File without changes
|
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_state.py
RENAMED
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_tcc.py
RENAMED
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_thermostat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/database/table_weather.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qolsys_controller-0.0.38 → qolsys_controller-0.0.40}/qolsys_controller/mqtt_command_queue.py
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
|