modal 0.73.58__tar.gz → 0.73.60__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.
Files changed (182) hide show
  1. {modal-0.73.58 → modal-0.73.60}/PKG-INFO +1 -1
  2. {modal-0.73.58 → modal-0.73.60}/modal/_functions.py +34 -44
  3. {modal-0.73.58 → modal-0.73.60}/modal/client.pyi +2 -2
  4. {modal-0.73.58 → modal-0.73.60}/modal.egg-info/PKG-INFO +1 -1
  5. {modal-0.73.58 → modal-0.73.60}/modal_version/_version_generated.py +1 -1
  6. {modal-0.73.58 → modal-0.73.60}/LICENSE +0 -0
  7. {modal-0.73.58 → modal-0.73.60}/README.md +0 -0
  8. {modal-0.73.58 → modal-0.73.60}/modal/__init__.py +0 -0
  9. {modal-0.73.58 → modal-0.73.60}/modal/__main__.py +0 -0
  10. {modal-0.73.58 → modal-0.73.60}/modal/_clustered_functions.py +0 -0
  11. {modal-0.73.58 → modal-0.73.60}/modal/_clustered_functions.pyi +0 -0
  12. {modal-0.73.58 → modal-0.73.60}/modal/_container_entrypoint.py +0 -0
  13. {modal-0.73.58 → modal-0.73.60}/modal/_ipython.py +0 -0
  14. {modal-0.73.58 → modal-0.73.60}/modal/_location.py +0 -0
  15. {modal-0.73.58 → modal-0.73.60}/modal/_object.py +0 -0
  16. {modal-0.73.58 → modal-0.73.60}/modal/_output.py +0 -0
  17. {modal-0.73.58 → modal-0.73.60}/modal/_partial_function.py +0 -0
  18. {modal-0.73.58 → modal-0.73.60}/modal/_proxy_tunnel.py +0 -0
  19. {modal-0.73.58 → modal-0.73.60}/modal/_pty.py +0 -0
  20. {modal-0.73.58 → modal-0.73.60}/modal/_resolver.py +0 -0
  21. {modal-0.73.58 → modal-0.73.60}/modal/_resources.py +0 -0
  22. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/__init__.py +0 -0
  23. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/asgi.py +0 -0
  24. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/container_io_manager.py +0 -0
  25. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/container_io_manager.pyi +0 -0
  26. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/execution_context.py +0 -0
  27. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/execution_context.pyi +0 -0
  28. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  29. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/telemetry.py +0 -0
  30. {modal-0.73.58 → modal-0.73.60}/modal/_runtime/user_code_imports.py +0 -0
  31. {modal-0.73.58 → modal-0.73.60}/modal/_serialization.py +0 -0
  32. {modal-0.73.58 → modal-0.73.60}/modal/_traceback.py +0 -0
  33. {modal-0.73.58 → modal-0.73.60}/modal/_tunnel.py +0 -0
  34. {modal-0.73.58 → modal-0.73.60}/modal/_tunnel.pyi +0 -0
  35. {modal-0.73.58 → modal-0.73.60}/modal/_utils/__init__.py +0 -0
  36. {modal-0.73.58 → modal-0.73.60}/modal/_utils/app_utils.py +0 -0
  37. {modal-0.73.58 → modal-0.73.60}/modal/_utils/async_utils.py +0 -0
  38. {modal-0.73.58 → modal-0.73.60}/modal/_utils/blob_utils.py +0 -0
  39. {modal-0.73.58 → modal-0.73.60}/modal/_utils/bytes_io_segment_payload.py +0 -0
  40. {modal-0.73.58 → modal-0.73.60}/modal/_utils/deprecation.py +0 -0
  41. {modal-0.73.58 → modal-0.73.60}/modal/_utils/docker_utils.py +0 -0
  42. {modal-0.73.58 → modal-0.73.60}/modal/_utils/function_utils.py +0 -0
  43. {modal-0.73.58 → modal-0.73.60}/modal/_utils/grpc_testing.py +0 -0
  44. {modal-0.73.58 → modal-0.73.60}/modal/_utils/grpc_utils.py +0 -0
  45. {modal-0.73.58 → modal-0.73.60}/modal/_utils/hash_utils.py +0 -0
  46. {modal-0.73.58 → modal-0.73.60}/modal/_utils/http_utils.py +0 -0
  47. {modal-0.73.58 → modal-0.73.60}/modal/_utils/logger.py +0 -0
  48. {modal-0.73.58 → modal-0.73.60}/modal/_utils/mount_utils.py +0 -0
  49. {modal-0.73.58 → modal-0.73.60}/modal/_utils/name_utils.py +0 -0
  50. {modal-0.73.58 → modal-0.73.60}/modal/_utils/package_utils.py +0 -0
  51. {modal-0.73.58 → modal-0.73.60}/modal/_utils/pattern_utils.py +0 -0
  52. {modal-0.73.58 → modal-0.73.60}/modal/_utils/rand_pb_testing.py +0 -0
  53. {modal-0.73.58 → modal-0.73.60}/modal/_utils/shell_utils.py +0 -0
  54. {modal-0.73.58 → modal-0.73.60}/modal/_vendor/__init__.py +0 -0
  55. {modal-0.73.58 → modal-0.73.60}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  56. {modal-0.73.58 → modal-0.73.60}/modal/_vendor/cloudpickle.py +0 -0
  57. {modal-0.73.58 → modal-0.73.60}/modal/_vendor/tblib.py +0 -0
  58. {modal-0.73.58 → modal-0.73.60}/modal/_watcher.py +0 -0
  59. {modal-0.73.58 → modal-0.73.60}/modal/app.py +0 -0
  60. {modal-0.73.58 → modal-0.73.60}/modal/app.pyi +0 -0
  61. {modal-0.73.58 → modal-0.73.60}/modal/call_graph.py +0 -0
  62. {modal-0.73.58 → modal-0.73.60}/modal/cli/__init__.py +0 -0
  63. {modal-0.73.58 → modal-0.73.60}/modal/cli/_download.py +0 -0
  64. {modal-0.73.58 → modal-0.73.60}/modal/cli/_traceback.py +0 -0
  65. {modal-0.73.58 → modal-0.73.60}/modal/cli/app.py +0 -0
  66. {modal-0.73.58 → modal-0.73.60}/modal/cli/config.py +0 -0
  67. {modal-0.73.58 → modal-0.73.60}/modal/cli/container.py +0 -0
  68. {modal-0.73.58 → modal-0.73.60}/modal/cli/dict.py +0 -0
  69. {modal-0.73.58 → modal-0.73.60}/modal/cli/entry_point.py +0 -0
  70. {modal-0.73.58 → modal-0.73.60}/modal/cli/environment.py +0 -0
  71. {modal-0.73.58 → modal-0.73.60}/modal/cli/import_refs.py +0 -0
  72. {modal-0.73.58 → modal-0.73.60}/modal/cli/launch.py +0 -0
  73. {modal-0.73.58 → modal-0.73.60}/modal/cli/network_file_system.py +0 -0
  74. {modal-0.73.58 → modal-0.73.60}/modal/cli/profile.py +0 -0
  75. {modal-0.73.58 → modal-0.73.60}/modal/cli/programs/__init__.py +0 -0
  76. {modal-0.73.58 → modal-0.73.60}/modal/cli/programs/run_jupyter.py +0 -0
  77. {modal-0.73.58 → modal-0.73.60}/modal/cli/programs/vscode.py +0 -0
  78. {modal-0.73.58 → modal-0.73.60}/modal/cli/queues.py +0 -0
  79. {modal-0.73.58 → modal-0.73.60}/modal/cli/run.py +0 -0
  80. {modal-0.73.58 → modal-0.73.60}/modal/cli/secret.py +0 -0
  81. {modal-0.73.58 → modal-0.73.60}/modal/cli/token.py +0 -0
  82. {modal-0.73.58 → modal-0.73.60}/modal/cli/utils.py +0 -0
  83. {modal-0.73.58 → modal-0.73.60}/modal/cli/volume.py +0 -0
  84. {modal-0.73.58 → modal-0.73.60}/modal/client.py +0 -0
  85. {modal-0.73.58 → modal-0.73.60}/modal/cloud_bucket_mount.py +0 -0
  86. {modal-0.73.58 → modal-0.73.60}/modal/cloud_bucket_mount.pyi +0 -0
  87. {modal-0.73.58 → modal-0.73.60}/modal/cls.py +0 -0
  88. {modal-0.73.58 → modal-0.73.60}/modal/cls.pyi +0 -0
  89. {modal-0.73.58 → modal-0.73.60}/modal/config.py +0 -0
  90. {modal-0.73.58 → modal-0.73.60}/modal/container_process.py +0 -0
  91. {modal-0.73.58 → modal-0.73.60}/modal/container_process.pyi +0 -0
  92. {modal-0.73.58 → modal-0.73.60}/modal/dict.py +0 -0
  93. {modal-0.73.58 → modal-0.73.60}/modal/dict.pyi +0 -0
  94. {modal-0.73.58 → modal-0.73.60}/modal/environments.py +0 -0
  95. {modal-0.73.58 → modal-0.73.60}/modal/environments.pyi +0 -0
  96. {modal-0.73.58 → modal-0.73.60}/modal/exception.py +0 -0
  97. {modal-0.73.58 → modal-0.73.60}/modal/experimental.py +0 -0
  98. {modal-0.73.58 → modal-0.73.60}/modal/experimental.pyi +0 -0
  99. {modal-0.73.58 → modal-0.73.60}/modal/extensions/__init__.py +0 -0
  100. {modal-0.73.58 → modal-0.73.60}/modal/extensions/ipython.py +0 -0
  101. {modal-0.73.58 → modal-0.73.60}/modal/file_io.py +0 -0
  102. {modal-0.73.58 → modal-0.73.60}/modal/file_io.pyi +0 -0
  103. {modal-0.73.58 → modal-0.73.60}/modal/file_pattern_matcher.py +0 -0
  104. {modal-0.73.58 → modal-0.73.60}/modal/functions.py +0 -0
  105. {modal-0.73.58 → modal-0.73.60}/modal/functions.pyi +0 -0
  106. {modal-0.73.58 → modal-0.73.60}/modal/gpu.py +0 -0
  107. {modal-0.73.58 → modal-0.73.60}/modal/image.py +0 -0
  108. {modal-0.73.58 → modal-0.73.60}/modal/image.pyi +0 -0
  109. {modal-0.73.58 → modal-0.73.60}/modal/io_streams.py +0 -0
  110. {modal-0.73.58 → modal-0.73.60}/modal/io_streams.pyi +0 -0
  111. {modal-0.73.58 → modal-0.73.60}/modal/mount.py +0 -0
  112. {modal-0.73.58 → modal-0.73.60}/modal/mount.pyi +0 -0
  113. {modal-0.73.58 → modal-0.73.60}/modal/network_file_system.py +0 -0
  114. {modal-0.73.58 → modal-0.73.60}/modal/network_file_system.pyi +0 -0
  115. {modal-0.73.58 → modal-0.73.60}/modal/object.py +0 -0
  116. {modal-0.73.58 → modal-0.73.60}/modal/object.pyi +0 -0
  117. {modal-0.73.58 → modal-0.73.60}/modal/output.py +0 -0
  118. {modal-0.73.58 → modal-0.73.60}/modal/parallel_map.py +0 -0
  119. {modal-0.73.58 → modal-0.73.60}/modal/parallel_map.pyi +0 -0
  120. {modal-0.73.58 → modal-0.73.60}/modal/partial_function.py +0 -0
  121. {modal-0.73.58 → modal-0.73.60}/modal/partial_function.pyi +0 -0
  122. {modal-0.73.58 → modal-0.73.60}/modal/proxy.py +0 -0
  123. {modal-0.73.58 → modal-0.73.60}/modal/proxy.pyi +0 -0
  124. {modal-0.73.58 → modal-0.73.60}/modal/py.typed +0 -0
  125. {modal-0.73.58 → modal-0.73.60}/modal/queue.py +0 -0
  126. {modal-0.73.58 → modal-0.73.60}/modal/queue.pyi +0 -0
  127. {modal-0.73.58 → modal-0.73.60}/modal/requirements/2023.12.312.txt +0 -0
  128. {modal-0.73.58 → modal-0.73.60}/modal/requirements/2023.12.txt +0 -0
  129. {modal-0.73.58 → modal-0.73.60}/modal/requirements/2024.04.txt +0 -0
  130. {modal-0.73.58 → modal-0.73.60}/modal/requirements/2024.10.txt +0 -0
  131. {modal-0.73.58 → modal-0.73.60}/modal/requirements/README.md +0 -0
  132. {modal-0.73.58 → modal-0.73.60}/modal/requirements/base-images.json +0 -0
  133. {modal-0.73.58 → modal-0.73.60}/modal/retries.py +0 -0
  134. {modal-0.73.58 → modal-0.73.60}/modal/runner.py +0 -0
  135. {modal-0.73.58 → modal-0.73.60}/modal/runner.pyi +0 -0
  136. {modal-0.73.58 → modal-0.73.60}/modal/running_app.py +0 -0
  137. {modal-0.73.58 → modal-0.73.60}/modal/sandbox.py +0 -0
  138. {modal-0.73.58 → modal-0.73.60}/modal/sandbox.pyi +0 -0
  139. {modal-0.73.58 → modal-0.73.60}/modal/schedule.py +0 -0
  140. {modal-0.73.58 → modal-0.73.60}/modal/scheduler_placement.py +0 -0
  141. {modal-0.73.58 → modal-0.73.60}/modal/secret.py +0 -0
  142. {modal-0.73.58 → modal-0.73.60}/modal/secret.pyi +0 -0
  143. {modal-0.73.58 → modal-0.73.60}/modal/serving.py +0 -0
  144. {modal-0.73.58 → modal-0.73.60}/modal/serving.pyi +0 -0
  145. {modal-0.73.58 → modal-0.73.60}/modal/snapshot.py +0 -0
  146. {modal-0.73.58 → modal-0.73.60}/modal/snapshot.pyi +0 -0
  147. {modal-0.73.58 → modal-0.73.60}/modal/stream_type.py +0 -0
  148. {modal-0.73.58 → modal-0.73.60}/modal/token_flow.py +0 -0
  149. {modal-0.73.58 → modal-0.73.60}/modal/token_flow.pyi +0 -0
  150. {modal-0.73.58 → modal-0.73.60}/modal/volume.py +0 -0
  151. {modal-0.73.58 → modal-0.73.60}/modal/volume.pyi +0 -0
  152. {modal-0.73.58 → modal-0.73.60}/modal.egg-info/SOURCES.txt +0 -0
  153. {modal-0.73.58 → modal-0.73.60}/modal.egg-info/dependency_links.txt +0 -0
  154. {modal-0.73.58 → modal-0.73.60}/modal.egg-info/entry_points.txt +0 -0
  155. {modal-0.73.58 → modal-0.73.60}/modal.egg-info/requires.txt +0 -0
  156. {modal-0.73.58 → modal-0.73.60}/modal.egg-info/top_level.txt +0 -0
  157. {modal-0.73.58 → modal-0.73.60}/modal_docs/__init__.py +0 -0
  158. {modal-0.73.58 → modal-0.73.60}/modal_docs/gen_cli_docs.py +0 -0
  159. {modal-0.73.58 → modal-0.73.60}/modal_docs/gen_reference_docs.py +0 -0
  160. {modal-0.73.58 → modal-0.73.60}/modal_docs/mdmd/__init__.py +0 -0
  161. {modal-0.73.58 → modal-0.73.60}/modal_docs/mdmd/mdmd.py +0 -0
  162. {modal-0.73.58 → modal-0.73.60}/modal_docs/mdmd/signatures.py +0 -0
  163. {modal-0.73.58 → modal-0.73.60}/modal_proto/__init__.py +0 -0
  164. {modal-0.73.58 → modal-0.73.60}/modal_proto/api.proto +0 -0
  165. {modal-0.73.58 → modal-0.73.60}/modal_proto/api_grpc.py +0 -0
  166. {modal-0.73.58 → modal-0.73.60}/modal_proto/api_pb2.py +0 -0
  167. {modal-0.73.58 → modal-0.73.60}/modal_proto/api_pb2.pyi +0 -0
  168. {modal-0.73.58 → modal-0.73.60}/modal_proto/api_pb2_grpc.py +0 -0
  169. {modal-0.73.58 → modal-0.73.60}/modal_proto/api_pb2_grpc.pyi +0 -0
  170. {modal-0.73.58 → modal-0.73.60}/modal_proto/modal_api_grpc.py +0 -0
  171. {modal-0.73.58 → modal-0.73.60}/modal_proto/modal_options_grpc.py +0 -0
  172. {modal-0.73.58 → modal-0.73.60}/modal_proto/options.proto +0 -0
  173. {modal-0.73.58 → modal-0.73.60}/modal_proto/options_grpc.py +0 -0
  174. {modal-0.73.58 → modal-0.73.60}/modal_proto/options_pb2.py +0 -0
  175. {modal-0.73.58 → modal-0.73.60}/modal_proto/options_pb2.pyi +0 -0
  176. {modal-0.73.58 → modal-0.73.60}/modal_proto/options_pb2_grpc.py +0 -0
  177. {modal-0.73.58 → modal-0.73.60}/modal_proto/options_pb2_grpc.pyi +0 -0
  178. {modal-0.73.58 → modal-0.73.60}/modal_proto/py.typed +0 -0
  179. {modal-0.73.58 → modal-0.73.60}/modal_version/__init__.py +0 -0
  180. {modal-0.73.58 → modal-0.73.60}/modal_version/__main__.py +0 -0
  181. {modal-0.73.58 → modal-0.73.60}/pyproject.toml +0 -0
  182. {modal-0.73.58 → modal-0.73.60}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.58
3
+ Version: 0.73.60
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -473,51 +473,41 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
473
473
 
474
474
  explicit_mounts = mounts
475
475
 
476
- if is_local():
477
- include_source_mode = get_include_source_mode(include_source)
478
- if include_source_mode != IncludeSourceMode.INCLUDE_NOTHING:
479
- entrypoint_mounts = info.get_entrypoint_mount()
480
- else:
481
- entrypoint_mounts = {}
482
-
483
- all_mounts = [
484
- _get_client_mount(),
485
- *explicit_mounts,
486
- *entrypoint_mounts.values(),
487
- ]
488
-
489
- if include_source_mode is IncludeSourceMode.INCLUDE_FIRST_PARTY:
490
- auto_mounts = get_sys_modules_mounts()
491
- # don't need to add entrypoint modules to automounts:
492
- for entrypoint_module in entrypoint_mounts:
493
- auto_mounts.pop(entrypoint_module, None)
494
-
495
- warn_missing_modules = set(auto_mounts.keys()) - image._added_python_source_set
496
-
497
- if warn_missing_modules:
498
- python_stringified_modules = ", ".join(f'"{mod}"' for mod in sorted(warn_missing_modules))
499
- deprecation_warning(
500
- (2025, 2, 3),
501
- (
502
- 'Modal will stop implicitly adding local Python modules to the Image ("automounting") in a '
503
- "future update. The following modules need to be explicitly added for future "
504
- "compatibility:\n"
505
- )
506
- + "\n".join(sorted([f"* {m}" for m in warn_missing_modules]))
507
- + "\n\n"
508
- + (
509
- "e.g.:\n"
510
- f"image_with_source = my_image.add_local_python_source({python_stringified_modules})\n\n"
511
- )
512
- + "For more information, see https://modal.com/docs/guide/modal-1-0-migration",
513
- )
514
- all_mounts += auto_mounts.values()
476
+ include_source_mode = get_include_source_mode(include_source)
477
+ if include_source_mode != IncludeSourceMode.INCLUDE_NOTHING:
478
+ entrypoint_mounts = info.get_entrypoint_mount()
515
479
  else:
516
- # skip any mount introspection/logic inside containers, since the function
517
- # should already be hydrated
518
- # TODO: maybe the entire from_args loader should be exited early if not local?
519
- # since it will be hydrated
520
- all_mounts = []
480
+ entrypoint_mounts = {}
481
+
482
+ all_mounts = [
483
+ _get_client_mount(),
484
+ *explicit_mounts,
485
+ *entrypoint_mounts.values(),
486
+ ]
487
+
488
+ if include_source_mode is IncludeSourceMode.INCLUDE_FIRST_PARTY and is_local():
489
+ auto_mounts = get_sys_modules_mounts()
490
+ # don't need to add entrypoint modules to automounts:
491
+ for entrypoint_module in entrypoint_mounts:
492
+ auto_mounts.pop(entrypoint_module, None)
493
+
494
+ warn_missing_modules = set(auto_mounts.keys()) - image._added_python_source_set
495
+
496
+ if warn_missing_modules:
497
+ python_stringified_modules = ", ".join(f'"{mod}"' for mod in sorted(warn_missing_modules))
498
+ deprecation_warning(
499
+ (2025, 2, 3),
500
+ (
501
+ 'Modal will stop implicitly adding local Python modules to the Image ("automounting") in a '
502
+ "future update. The following modules need to be explicitly added for future "
503
+ "compatibility:\n"
504
+ )
505
+ + "\n".join(sorted([f"* {m}" for m in warn_missing_modules]))
506
+ + "\n\n"
507
+ + (f"e.g.:\nimage_with_source = my_image.add_local_python_source({python_stringified_modules})\n\n")
508
+ + "For more information, see https://modal.com/docs/guide/modal-1-0-migration",
509
+ )
510
+ all_mounts += auto_mounts.values()
521
511
 
522
512
  retry_policy = _parse_retries(
523
513
  retries, f"Function '{info.get_tag()}'" if info.raw_f else f"Class '{info.get_tag()}'"
@@ -27,7 +27,7 @@ class _Client:
27
27
  _snapshotted: bool
28
28
 
29
29
  def __init__(
30
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.58"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.60"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -85,7 +85,7 @@ class Client:
85
85
  _snapshotted: bool
86
86
 
87
87
  def __init__(
88
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.58"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.60"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.58
3
+ Version: 0.73.60
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 58 # git: 0fe73d2
4
+ build_number = 60 # git: 821ea54
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes