rustplus 5.6.12__tar.gz → 5.6.13__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.
- {rustplus-5.6.12/rustplus.egg-info → rustplus-5.6.13}/PKG-INFO +10 -1
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/__init__.py +1 -1
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_chat_message.py +2 -1
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_contents.py +2 -2
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_entity_info.py +3 -3
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_info.py +2 -1
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_item.py +2 -1
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_map.py +3 -3
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_marker.py +4 -4
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_team_info.py +4 -4
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/rust_time.py +4 -1
- rustplus-5.6.13/rustplus/api/structures/serialization.py +17 -0
- {rustplus-5.6.12 → rustplus-5.6.13/rustplus.egg-info}/PKG-INFO +10 -1
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus.egg-info/SOURCES.txt +1 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/LICENSE +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/MANIFEST.in +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/README.md +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/base_rust_api.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/airfield.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/arctic_base.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/bandit.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/barn.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/cargo.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/chinook.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/chinook_blades.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/crate.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/desert_base.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/dome.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/excavator.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/explosion.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/fishing.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/harbour.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/icon.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/junkyard.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/large_oil_rig.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/launchsite.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/lighthouse.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/military_tunnels.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/mining_outpost.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/outpost.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/oxums.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/patrol.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/power_plant.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/quarry.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/satellite.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/sewer.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/small_oil_rig.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/stable.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/supermarket.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/swamp.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/train.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/train_yard.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/underwater_lab.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/vending_machine.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/icons/water_treatment.png +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/camera/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/camera/camera_constants.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/camera/camera_manager.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/camera/camera_parser.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/camera/structures.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/events/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/events/event_handler.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/events/event_loop_manager.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/events/events.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/events/handler_list.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/events/map_event_listener.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/events/registered_listener.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/fcm_listener.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/heartbeat.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/ratelimiter.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/rplus_version_handler.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/rust_remote_interface.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/rustplus_proto/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/rustplus_proto/rustplus.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/rustws.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/remote/server_checker.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/rust_api.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/api/structures/util.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/commands/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/commands/command.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/commands/command_data.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/commands/command_handler.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/commands/command_options.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/conversation/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/conversation/conversation.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/conversation/conversation_factory.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/conversation/conversation_prompt.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/exceptions/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/exceptions/exceptions.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/deprecated.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/emojis.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/fonts/PermanentMarker.ttf +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/fonts/__init__.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/grab_items.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/rust_utils.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/server_id.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus/utils/yielding_event.py +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus.egg-info/dependency_links.txt +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus.egg-info/requires.txt +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/rustplus.egg-info/top_level.txt +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/setup.cfg +0 -0
- {rustplus-5.6.12 → rustplus-5.6.13}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rustplus
|
|
3
|
-
Version: 5.6.
|
|
3
|
+
Version: 5.6.13
|
|
4
4
|
Summary: A python wrapper for the Rust Plus API
|
|
5
5
|
Home-page: https://github.com/olijeffers0n/rustplus
|
|
6
6
|
Author: olijeffers0n
|
|
@@ -9,6 +9,15 @@ Project-URL: Issue tracker, https://github.com/olijeffers0n/rustplus/issues
|
|
|
9
9
|
Requires-Python: >=3.8.0
|
|
10
10
|
Description-Content-Type: text/markdown
|
|
11
11
|
License-File: LICENSE
|
|
12
|
+
Requires-Dist: websockets
|
|
13
|
+
Requires-Dist: Pillow
|
|
14
|
+
Requires-Dist: asyncio
|
|
15
|
+
Requires-Dist: rustPlusPushReceiver==0.4.1
|
|
16
|
+
Requires-Dist: http-ece
|
|
17
|
+
Requires-Dist: requests
|
|
18
|
+
Requires-Dist: numpy
|
|
19
|
+
Requires-Dist: scipy
|
|
20
|
+
Requires-Dist: betterproto==2.0.0b6
|
|
12
21
|
|
|
13
22
|

|
|
14
23
|
<div align = "center">
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from ..remote.rustplus_proto import AppTeamMessage
|
|
2
|
+
from .serialization import Serializable
|
|
2
3
|
|
|
3
4
|
|
|
4
|
-
class RustChatMessage:
|
|
5
|
+
class RustChatMessage(Serializable):
|
|
5
6
|
def __init__(self, data: AppTeamMessage):
|
|
6
7
|
self._steam_id: int = data.steam_id
|
|
7
8
|
self._name: str = data.name
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from datetime import timedelta
|
|
2
2
|
from typing import List
|
|
3
|
-
|
|
3
|
+
from .serialization import Serializable
|
|
4
4
|
from .rust_item import RustItem
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
class RustContents:
|
|
7
|
+
class RustContents(Serializable):
|
|
8
8
|
def __init__(self, protection_time, has_protection, contents) -> None:
|
|
9
9
|
self._protection_time: timedelta = protection_time
|
|
10
10
|
self._has_protection: bool = has_protection
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from typing import List
|
|
2
|
-
|
|
2
|
+
from .serialization import Serializable
|
|
3
3
|
from ..remote import AppEntityInfo, AppEntityPayloadItem
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class RustEntityInfoItem:
|
|
6
|
+
class RustEntityInfoItem(Serializable):
|
|
7
7
|
def __init__(self, data: AppEntityPayloadItem) -> None:
|
|
8
8
|
self._item_id: int = data.item_id
|
|
9
9
|
self._quantity: int = data.quantity
|
|
@@ -29,7 +29,7 @@ class RustEntityInfoItem:
|
|
|
29
29
|
)
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
class RustEntityInfo:
|
|
32
|
+
class RustEntityInfo(Serializable):
|
|
33
33
|
def __init__(self, data: AppEntityInfo) -> None:
|
|
34
34
|
self._type: int = data.type
|
|
35
35
|
self._value: bool = data.payload.value
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from typing import List
|
|
2
|
-
|
|
2
|
+
from .serialization import Serializable
|
|
3
3
|
from ..remote.rustplus_proto import AppMap
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class RustMonument:
|
|
6
|
+
class RustMonument(Serializable):
|
|
7
7
|
def __init__(self, token, x, y) -> None:
|
|
8
8
|
self._token: str = token
|
|
9
9
|
self._x: float = x
|
|
@@ -27,7 +27,7 @@ class RustMonument:
|
|
|
27
27
|
)
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
class RustMap:
|
|
30
|
+
class RustMap(Serializable):
|
|
31
31
|
def __init__(self, data: AppMap) -> None:
|
|
32
32
|
self._width: int = data.width
|
|
33
33
|
self._height: int = data.height
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from typing import List
|
|
2
|
-
|
|
2
|
+
from .serialization import Serializable
|
|
3
3
|
from ..remote.rustplus_proto import Vector4, AppMarkerSellOrder, AppMarker
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class RustColour:
|
|
6
|
+
class RustColour(Serializable):
|
|
7
7
|
def __init__(self, data: Vector4) -> None:
|
|
8
8
|
self._x: float = data.x
|
|
9
9
|
self._y: float = data.y
|
|
@@ -32,7 +32,7 @@ class RustColour:
|
|
|
32
32
|
)
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
class RustSellOrder:
|
|
35
|
+
class RustSellOrder(Serializable):
|
|
36
36
|
def __init__(self, data: AppMarkerSellOrder) -> None:
|
|
37
37
|
self._item_id: int = data.item_id
|
|
38
38
|
self._quantity: int = data.quantity
|
|
@@ -84,7 +84,7 @@ class RustSellOrder:
|
|
|
84
84
|
)
|
|
85
85
|
|
|
86
86
|
|
|
87
|
-
class RustMarker:
|
|
87
|
+
class RustMarker(Serializable):
|
|
88
88
|
PlayerMarker = 1
|
|
89
89
|
ExplosionMarker = 2
|
|
90
90
|
VendingMachineMarker = 3
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from typing import List
|
|
2
|
-
|
|
2
|
+
from .serialization import Serializable
|
|
3
3
|
from ..remote.rustplus_proto import AppTeamInfoMember, AppTeamInfoNote, AppTeamInfo
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class RustTeamMember:
|
|
6
|
+
class RustTeamMember(Serializable):
|
|
7
7
|
def __init__(self, data: AppTeamInfoMember) -> None:
|
|
8
8
|
self._steam_id: int = data.steam_id
|
|
9
9
|
self._name: str = data.name
|
|
@@ -59,7 +59,7 @@ class RustTeamMember:
|
|
|
59
59
|
)
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
class RustTeamNote:
|
|
62
|
+
class RustTeamNote(Serializable):
|
|
63
63
|
def __init__(self, data: AppTeamInfoNote) -> None:
|
|
64
64
|
self._type: int = data.type
|
|
65
65
|
self._x: float = data.x
|
|
@@ -98,7 +98,7 @@ class RustTeamNote:
|
|
|
98
98
|
)
|
|
99
99
|
|
|
100
100
|
|
|
101
|
-
class RustTeamInfo:
|
|
101
|
+
class RustTeamInfo(Serializable):
|
|
102
102
|
def __init__(self, data: AppTeamInfo) -> None:
|
|
103
103
|
self._leader_steam_id: int = data.leader_steam_id
|
|
104
104
|
self._members = [RustTeamMember(member) for member in data.members]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from collections.abc import Sequence
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Serializable:
|
|
5
|
+
|
|
6
|
+
def serialize(self):
|
|
7
|
+
data = {}
|
|
8
|
+
for k, v in self.__dict__.items():
|
|
9
|
+
key = k if k[0] != "_" else k[1:]
|
|
10
|
+
if isinstance(v, Serializable):
|
|
11
|
+
data[key] = v.serialize()
|
|
12
|
+
elif isinstance(v, Sequence) and all(isinstance(element, Serializable) for element in v):
|
|
13
|
+
data[key] = [e.serialize() for e in v]
|
|
14
|
+
else:
|
|
15
|
+
data[key] = str(v)
|
|
16
|
+
|
|
17
|
+
return data
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rustplus
|
|
3
|
-
Version: 5.6.
|
|
3
|
+
Version: 5.6.13
|
|
4
4
|
Summary: A python wrapper for the Rust Plus API
|
|
5
5
|
Home-page: https://github.com/olijeffers0n/rustplus
|
|
6
6
|
Author: olijeffers0n
|
|
@@ -9,6 +9,15 @@ Project-URL: Issue tracker, https://github.com/olijeffers0n/rustplus/issues
|
|
|
9
9
|
Requires-Python: >=3.8.0
|
|
10
10
|
Description-Content-Type: text/markdown
|
|
11
11
|
License-File: LICENSE
|
|
12
|
+
Requires-Dist: websockets
|
|
13
|
+
Requires-Dist: Pillow
|
|
14
|
+
Requires-Dist: asyncio
|
|
15
|
+
Requires-Dist: rustPlusPushReceiver==0.4.1
|
|
16
|
+
Requires-Dist: http-ece
|
|
17
|
+
Requires-Dist: requests
|
|
18
|
+
Requires-Dist: numpy
|
|
19
|
+
Requires-Dist: scipy
|
|
20
|
+
Requires-Dist: betterproto==2.0.0b6
|
|
12
21
|
|
|
13
22
|

|
|
14
23
|
<div align = "center">
|
|
@@ -82,6 +82,7 @@ rustplus/api/structures/rust_map.py
|
|
|
82
82
|
rustplus/api/structures/rust_marker.py
|
|
83
83
|
rustplus/api/structures/rust_team_info.py
|
|
84
84
|
rustplus/api/structures/rust_time.py
|
|
85
|
+
rustplus/api/structures/serialization.py
|
|
85
86
|
rustplus/api/structures/util.py
|
|
86
87
|
rustplus/commands/__init__.py
|
|
87
88
|
rustplus/commands/command.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|