rbx.cp 0.5.7__tar.gz → 0.5.9__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 (163) hide show
  1. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/PKG-INFO +1 -1
  2. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/pyproject.toml +1 -1
  3. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/contest/main.py +5 -4
  4. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/creation.py +1 -0
  5. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/presets/__init__.py +2 -0
  6. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/LICENSE +0 -0
  7. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/README.md +0 -0
  8. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/__init__.py +0 -0
  9. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/annotations.py +0 -0
  10. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/autoenum.py +0 -0
  11. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/__init__.py +0 -0
  12. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/builder.py +0 -0
  13. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/cd.py +0 -0
  14. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/checkers.py +0 -0
  15. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/code.py +0 -0
  16. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/compile.py +0 -0
  17. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/conftest.py +0 -0
  18. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/contest/__init__.py +0 -0
  19. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/contest/build_contest_statements.py +0 -0
  20. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/contest/contest_package.py +0 -0
  21. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/contest/contest_utils.py +0 -0
  22. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/contest/schema.py +0 -0
  23. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/contest/statements.py +0 -0
  24. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/download.py +0 -0
  25. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/environment.py +0 -0
  26. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/extensions.py +0 -0
  27. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/generators.py +0 -0
  28. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/generators_test.py +0 -0
  29. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/main.py +0 -0
  30. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/package.py +0 -0
  31. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/boca/extension.py +0 -0
  32. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/boca/packager.py +0 -0
  33. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/contest_main.py +0 -0
  34. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/main.py +0 -0
  35. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/packager.py +0 -0
  36. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/polygon/packager.py +0 -0
  37. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/polygon/test.py +0 -0
  38. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/packaging/polygon/xml_schema.py +0 -0
  39. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/presets/fetch.py +0 -0
  40. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/presets/lock_schema.py +0 -0
  41. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/presets/schema.py +0 -0
  42. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/schema.py +0 -0
  43. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/solutions.py +0 -0
  44. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/solutions_test.py +0 -0
  45. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/statements/__init__.py +0 -0
  46. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/statements/build_statements.py +0 -0
  47. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/statements/builders.py +0 -0
  48. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/statements/joiners.py +0 -0
  49. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/statements/latex.py +0 -0
  50. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/statements/latex_jinja.py +0 -0
  51. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/statements/schema.py +0 -0
  52. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/stresses.py +0 -0
  53. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/stressing/__init__.py +0 -0
  54. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/stressing/finder_parser.py +0 -0
  55. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/stressing/generator_parser.py +0 -0
  56. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/testcases.py +0 -0
  57. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/ui/__init__.py +0 -0
  58. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/ui/captured_log.py +0 -0
  59. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/ui/css/app.tcss +0 -0
  60. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/ui/main.py +0 -0
  61. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/ui/run.py +0 -0
  62. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/validators.py +0 -0
  63. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/box/validators_test.py +0 -0
  64. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/checker.py +0 -0
  65. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/clone.py +0 -0
  66. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/config.py +0 -0
  67. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/conftest.py +0 -0
  68. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/console.py +0 -0
  69. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/create.py +0 -0
  70. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/edit.py +0 -0
  71. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/__init__.py +0 -0
  72. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/caching.py +0 -0
  73. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/conftest.py +0 -0
  74. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/__init__.py +0 -0
  75. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/cacher.py +0 -0
  76. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/digester.py +0 -0
  77. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/sandbox.py +0 -0
  78. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/sandboxes/__init__.py +0 -0
  79. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/sandboxes/isolate.py +0 -0
  80. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
  81. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/sandboxes/timeit.py +0 -0
  82. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/storage.py +0 -0
  83. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/test.py +0 -0
  84. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/judge/testiso.py +0 -0
  85. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/steps.py +0 -0
  86. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/steps_with_caching.py +0 -0
  87. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading/steps_with_caching_run_test.py +0 -0
  88. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/grading_utils.py +0 -0
  89. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/hydration.py +0 -0
  90. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/main.py +0 -0
  91. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/metadata.py +0 -0
  92. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/providers/__init__.py +0 -0
  93. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/providers/codeforces.py +0 -0
  94. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/providers/provider.py +0 -0
  95. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/checkers/boilerplate.cpp +0 -0
  96. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/default_config.json +0 -0
  97. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/envs/default.rbx.yml +0 -0
  98. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/envs/isolate.rbx.yml +0 -0
  99. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/checker.sh +0 -0
  100. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compare +0 -0
  101. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/c +0 -0
  102. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/cc +0 -0
  103. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/cpp +0 -0
  104. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/java +0 -0
  105. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/kt +0 -0
  106. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/pas +0 -0
  107. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/py2 +0 -0
  108. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/compile/py3 +0 -0
  109. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/run/c +0 -0
  110. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/run/cc +0 -0
  111. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/run/cpp +0 -0
  112. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/run/java +0 -0
  113. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/run/kt +0 -0
  114. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/run/py2 +0 -0
  115. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/packagers/boca/run/py3 +0 -0
  116. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
  117. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
  118. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/contest/statement/olymp.sty +0 -0
  119. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/contest/statement/template.rbx.tex +0 -0
  120. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/preset.rbx.yml +0 -0
  121. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/.gitignore +0 -0
  122. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/gen.cpp +0 -0
  123. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
  124. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/random.py +0 -0
  125. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/random.txt +0 -0
  126. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
  127. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/sols/slow.cpp +0 -0
  128. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/sols/wa.cpp +0 -0
  129. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/statement/olymp.sty +0 -0
  130. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/statement/projecao.png +0 -0
  131. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
  132. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/statement/template.rbx.tex +0 -0
  133. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/tests/samples/000.in +0 -0
  134. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/tests/samples/001.in +0 -0
  135. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/validator.cpp +0 -0
  136. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
  137. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/resources/templates/template.cpp +0 -0
  138. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/run.py +0 -0
  139. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/schema.py +0 -0
  140. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/submit.py +0 -0
  141. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/submitors/__init__.py +0 -0
  142. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/submitors/codeforces.py +0 -0
  143. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/submitors/submitor.py +0 -0
  144. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/test.py +0 -0
  145. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testcase.py +0 -0
  146. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testcase_rendering.py +0 -0
  147. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/gen1.cpp +0 -0
  148. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/gen2.cpp +0 -0
  149. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/genScript.py +0 -0
  150. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/hard-tle.sol.cpp +0 -0
  151. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/ole.cpp +0 -0
  152. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/problem.rbx.yml +0 -0
  153. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/re.sol.cpp +0 -0
  154. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/sol.cpp +0 -0
  155. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/tests/1.in +0 -0
  156. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/tle-and-incorrect.sol.cpp +0 -0
  157. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/tle.sol.cpp +0 -0
  158. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/validator.cpp +0 -0
  159. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/box1/wa.sol.cpp +0 -0
  160. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/caching/executable.py +0 -0
  161. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testdata/compatible +0 -0
  162. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/testing_utils.py +0 -0
  163. {rbx_cp-0.5.7 → rbx_cp-0.5.9}/rbx/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rbx.cp
3
- Version: 0.5.7
3
+ Version: 0.5.9
4
4
  Summary:
5
5
  Author: Roberto Sales
6
6
  Requires-Python: >=3.9,<4.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "rbx.cp"
3
- version = "0.5.7"
3
+ version = "0.5.9"
4
4
  description = ""
5
5
  packages = [
6
6
  {include = "rbx"}
@@ -128,7 +128,8 @@ def edit():
128
128
 
129
129
  @app.command('add, a', help='Add new problem to contest.')
130
130
  @within_contest
131
- def add(name: str, short_name: str, preset: Optional[str] = None):
131
+ def add(path: str, short_name: str, preset: Optional[str] = None):
132
+ name = pathlib.Path(path).stem
132
133
  utils.validate_field(ContestProblem, 'short_name', short_name)
133
134
  utils.validate_field(Package, 'name', name)
134
135
 
@@ -141,21 +142,21 @@ def add(name: str, short_name: str, preset: Optional[str] = None):
141
142
  preset_lock = presets.get_preset_lock()
142
143
  if preset is None and preset_lock is not None:
143
144
  preset = preset_lock.preset_name
144
- creation.create(name, preset=preset, path=pathlib.Path(name))
145
+ creation.create(name, preset=preset, path=pathlib.Path(path))
145
146
 
146
147
  contest = find_contest_package_or_die()
147
148
  # Reassign mutable object before saving.
148
149
  contest.problems = sorted(
149
150
  [
150
151
  *contest.problems,
151
- ContestProblem(short_name=short_name, path=pathlib.Path(name)),
152
+ ContestProblem(short_name=short_name, path=pathlib.Path(path)),
152
153
  ],
153
154
  key=lambda p: p.short_name,
154
155
  )
155
156
 
156
157
  save_contest(contest)
157
158
  console.console.print(
158
- f'Problem [item]{name} ({short_name})[/item] added to contest.'
159
+ f'Problem [item]{name} ({short_name})[/item] added to contest at [item]{path}[/item].'
159
160
  )
160
161
 
161
162
 
@@ -61,6 +61,7 @@ def create(
61
61
  )
62
62
  raise typer.Exit(1)
63
63
 
64
+ dest_path.mkdir(parents=True, exist_ok=True)
64
65
  shutil.copytree(str(problem_path), str(dest_path))
65
66
 
66
67
  # Remove a few left overs.
@@ -334,6 +334,8 @@ def _install(root: pathlib.Path = pathlib.Path(), force: bool = False):
334
334
  shutil.copytree(str(root), str(installation_path))
335
335
  shutil.rmtree(str(installation_path / 'build'), ignore_errors=True)
336
336
  shutil.rmtree(str(installation_path / '.box'), ignore_errors=True)
337
+ shutil.rmtree(str(installation_path / '.local.rbx'), ignore_errors=True)
338
+ shutil.rmtree(str(installation_path / '.git'), ignore_errors=True)
337
339
 
338
340
 
339
341
  def install_from_remote(fetch_info: PresetFetchInfo, force: bool = False) -> str:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes