labnotes 0.0.93__tar.gz → 0.0.95__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.
- {labnotes-0.0.93 → labnotes-0.0.95}/PKG-INFO +1 -1
- labnotes-0.0.95/src/labnotes/__init__.py +3 -0
- labnotes-0.0.95/src/labnotes/log.py +23 -0
- labnotes-0.0.95/src/labnotes/log_path.py +10 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/execute_run.py +8 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/group_cells.py +3 -2
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/invocation_rows.py +3 -2
- labnotes-0.0.93/src/labnotes/tui/__init__.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/.gitignore +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/CHANGELOG.md +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/MIGRATIONS.md +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/README.md +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/pyproject.toml +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/__main__.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/asset_url.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/check_counts.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/cli.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/context.md +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/context_guide.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/count_groups.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/count_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/create_app.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/create_experiment.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/create_note.py +0 -0
- {labnotes-0.0.93/src/labnotes → labnotes-0.0.95/src/labnotes/daemon}/__init__.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/control_run.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/daemon_app.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/daemon_client.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/daemon_running.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/daemon_server.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/describe_status.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/ensure_daemon.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/exit_when_idle.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/remote_start.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/run_daemon.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/run_logs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/serve_daemon.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/socket_path.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/stop_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/watch_daemon.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon/watch_status.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/daemon_command.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/data_html.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/default_config_text.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/default_counts.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/drain_watch.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/experiment_notes.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/experiment_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/experiments.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/file_changes.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/format_duration.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/format_started.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/format_value.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/group_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/init.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/invocation_started.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/is_positive_int.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/list_experiments.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/list_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/load_config.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/load_experiment.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/load_run.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/models.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/modes.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/nests_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/note_path.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/notebook_kernel.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/output_html.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/parse_run_view.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/print_rows.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/python_blocks.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/read_config.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/read_path.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/render_markdown.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/run_command.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/run_control.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/run_output.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/run_status.py +0 -0
- {labnotes-0.0.93/src/labnotes/daemon → labnotes-0.0.95/src/labnotes/runner}/__init__.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/describe_event.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/hold_folder.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/new_param_run_id.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/new_run_id.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/new_stamped_run_id.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/param_args.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/param_grid.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/param_run_name.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/plan_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/prepare_experiment.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/read_experiment_config.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/run_experiment.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/run_folder.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/run_headless.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/runs_parent.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/shell_command.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/signal_tree.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/stop_then_kill.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/wait_for_tree.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/runner/write_run_json.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/save_conflict_copy.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/save_note.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/saved_outputs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/serve_app.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/server.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/shared_params.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/sort_href.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/sql_quote.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/elapsed.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/experiment.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/labnotes.css +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/local-time.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/new-note.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/note-edit.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/note-editor.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/row-link.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/run-cell.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/run-output.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/static/view-toggle.js +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/summarize_config.py +0 -0
- {labnotes-0.0.93/src/labnotes/runner → labnotes-0.0.95/src/labnotes/tables}/__init__.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/experiment_rows.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/experiment_run_ids.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/file_prefix.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/file_text.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/iso_time.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/list_experiment_runs.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/note_text.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/open_tables.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/path_glob.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/path_pattern.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/read_experiment.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/read_file.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/read_log.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/read_run.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tables/summarize_experiments.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/templates/base.html +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/templates/editor_imports.html +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/templates/experiment.html +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/templates/index.html +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/templates/note.html +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/templates/run.html +0 -0
- {labnotes-0.0.93/src/labnotes/tables → labnotes-0.0.95/src/labnotes/tui}/__init__.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/browse_app.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/browse_tui.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/dim.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/experiment_screen.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/experiments_screen.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/fill_table.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/format_elapsed.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/invocation_columns.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/reload_on_change.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/run_app.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/run_cells.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/run_output.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/run_screen.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/run_tui.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/runs_table.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/tui/stopped_title.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/wait_for_note.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/src/labnotes/watch_rows.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/testing-conventions.toml +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/tests/integration/conftest.py +0 -0
- {labnotes-0.0.93 → labnotes-0.0.95}/uv.lock +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from datetime import UTC, datetime
|
|
3
|
+
|
|
4
|
+
from labnotes.log_path import log_path
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def now() -> str:
|
|
8
|
+
return datetime.now(UTC).isoformat(timespec="milliseconds").replace("+00:00", "Z")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def log(block: dict[str, object]) -> None:
|
|
12
|
+
"""Write a block to the run's log, or print its content outside a run.
|
|
13
|
+
|
|
14
|
+
Scripts import this, so the module stays standard-library only.
|
|
15
|
+
"""
|
|
16
|
+
path = log_path()
|
|
17
|
+
if path is None:
|
|
18
|
+
if "content" in block:
|
|
19
|
+
print(block["content"])
|
|
20
|
+
return
|
|
21
|
+
line = json.dumps({**block, "timestamp": now()})
|
|
22
|
+
with path.open("a", encoding="utf-8") as file:
|
|
23
|
+
file.write(f"{line}\n")
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import os
|
|
2
3
|
import time
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
|
|
5
6
|
import psutil
|
|
6
7
|
|
|
8
|
+
from labnotes.log_path import LOG_ENV
|
|
7
9
|
from labnotes.runner.shell_command import shell_command
|
|
8
10
|
from labnotes.runner.wait_for_tree import wait_for_tree
|
|
9
11
|
from labnotes.runner.write_run_json import write_run_json
|
|
@@ -35,6 +37,12 @@ async def execute_run(
|
|
|
35
37
|
process = await asyncio.create_subprocess_shell(
|
|
36
38
|
shell_command(command, folder, params),
|
|
37
39
|
cwd=root,
|
|
40
|
+
env={
|
|
41
|
+
"FORCE_COLOR": "1",
|
|
42
|
+
"CLICOLOR_FORCE": "1",
|
|
43
|
+
**os.environ,
|
|
44
|
+
LOG_ENV: str(folder / "log.jsonl"),
|
|
45
|
+
},
|
|
38
46
|
stdout=stdout,
|
|
39
47
|
stderr=stderr,
|
|
40
48
|
)
|
|
@@ -7,7 +7,7 @@ from labnotes.format_value import format_value
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def group_cells(
|
|
10
|
-
group: Mapping[str, Any], columns: Sequence[str], live: bool
|
|
10
|
+
group: Mapping[str, Any], columns: Sequence[str], live: bool, opened: bool
|
|
11
11
|
) -> list[object]:
|
|
12
12
|
status = Text.assemble(
|
|
13
13
|
(f"{group['passed']}✓", "green"), " ", (f"{group['failed']}✕", "red")
|
|
@@ -15,7 +15,8 @@ def group_cells(
|
|
|
15
15
|
if group["unfinished"]:
|
|
16
16
|
mark, style = ("◐", "yellow") if live else ("–", "dim")
|
|
17
17
|
status.append(f" {group['unfinished']}{mark}", style=style)
|
|
18
|
-
|
|
18
|
+
marker = "▾" if opened else "▸"
|
|
19
|
+
cells: list[object] = [status, f"{marker} {group['name']}", str(len(group["runs"]))]
|
|
19
20
|
for column in columns[1:]:
|
|
20
21
|
if column == "started":
|
|
21
22
|
cells.append(group["started"] or "")
|
|
@@ -22,8 +22,9 @@ def invocation_rows(
|
|
|
22
22
|
[run, *_] = group["runs"]
|
|
23
23
|
rows.append((str(run["id"]), run_cells(run, columns, True, live)))
|
|
24
24
|
continue
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
is_open = group["name"] in opened
|
|
26
|
+
rows.append((group["name"], group_cells(group, columns, live, is_open)))
|
|
27
|
+
if is_open:
|
|
27
28
|
rows += [
|
|
28
29
|
(str(run["id"]), run_cells(run, columns, True, live))
|
|
29
30
|
for run in group["runs"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|