pycode-kg 0.21.2__tar.gz → 0.21.4__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.
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/PKG-INFO +10 -11
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/README.md +5 -5
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/pyproject.toml +31 -8
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/__init__.py +1 -1
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/analysis/bridge.py +1 -1
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/analysis/centrality.py +1 -1
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/analysis/framework_detector.py +1 -1
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_hooks.py +1 -1
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/pycodekg.py +1 -1
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/snapshots.py +1 -1
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/LICENSE +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/.DS_Store +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/__main__.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/analysis/__init__.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/analysis/hybrid_rank.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/app.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/architecture.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/build_pycodekg_sqlite.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/__init__.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_analyze.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_architecture.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_bridges.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_build.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_build_full.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_centrality.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_explain.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_framework_nodes.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_init.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_mcp.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_model.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_query.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_snapshot.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/cmd_viz.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/main.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/cli/options.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/config.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/explain.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/graph.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/graph_html.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/index.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/kg.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/layout3d.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/mcp_server.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/module/__init__.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/module/base.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/module/extractor.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/module/types.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/pycodekg_query.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/pycodekg_snippet_packer.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/pycodekg_thorough_analysis.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/pycodekg_viz.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/pycodekg_viz3d.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/ranking/__init__.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/ranking/cli_rank.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/ranking/coderank.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/sql/004_add_centrality_table.sql +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/store.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/theme.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/utils.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/visitor.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/viz3d.py +0 -0
- {pycode_kg-0.21.2 → pycode_kg-0.21.4}/src/pycode_kg/viz3d_timeline.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pycode-kg
|
|
3
|
-
Version: 0.21.
|
|
3
|
+
Version: 0.21.4
|
|
4
4
|
Summary: A tool to build a searchable knowledge graph from Python repositories
|
|
5
5
|
License-Expression: Elastic-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -24,7 +24,7 @@ Requires-Dist: PyQt5 (>=5.15.0) ; extra == "viz3d"
|
|
|
24
24
|
Requires-Dist: click (>=8.1.0,<9)
|
|
25
25
|
Requires-Dist: detect-secrets (>=1.5.0) ; extra == "all"
|
|
26
26
|
Requires-Dist: detect-secrets (>=1.5.0) ; extra == "dev"
|
|
27
|
-
Requires-Dist: kgmodule-utils[semantic
|
|
27
|
+
Requires-Dist: kgmodule-utils[semantic] (>=0.10.0)
|
|
28
28
|
Requires-Dist: markdown (>=3.6) ; extra == "all"
|
|
29
29
|
Requires-Dist: markdown (>=3.6) ; extra == "viz3d"
|
|
30
30
|
Requires-Dist: mcp (>=1.0.0,<2)
|
|
@@ -45,21 +45,20 @@ Requires-Dist: pytest-cov (>=5.0.0) ; extra == "all"
|
|
|
45
45
|
Requires-Dist: pytest-cov (>=5.0.0) ; extra == "dev"
|
|
46
46
|
Requires-Dist: pyvis (>=0.3.2) ; extra == "all"
|
|
47
47
|
Requires-Dist: pyvis (>=0.3.2) ; extra == "viz"
|
|
48
|
-
Requires-Dist: pyvista
|
|
49
|
-
Requires-Dist: pyvista
|
|
48
|
+
Requires-Dist: pyvista (>=0.44.0) ; extra == "all"
|
|
49
|
+
Requires-Dist: pyvista (>=0.44.0) ; extra == "viz3d"
|
|
50
50
|
Requires-Dist: pyvistaqt (>=0.11.0) ; extra == "all"
|
|
51
51
|
Requires-Dist: pyvistaqt (>=0.11.0) ; extra == "viz3d"
|
|
52
52
|
Requires-Dist: rich (>=14.3.3,<15)
|
|
53
53
|
Requires-Dist: ruff (>=0.4.0) ; extra == "all"
|
|
54
54
|
Requires-Dist: ruff (>=0.4.0) ; extra == "dev"
|
|
55
|
-
Requires-Dist: safetensors (>=0.5.0)
|
|
56
55
|
Requires-Dist: sentence-transformers (>=5.4.1)
|
|
56
|
+
Requires-Dist: sqlite-vec (==0.1.9)
|
|
57
57
|
Requires-Dist: streamlit (>=1.56.0) ; extra == "all"
|
|
58
58
|
Requires-Dist: streamlit (>=1.56.0) ; extra == "viz"
|
|
59
59
|
Requires-Dist: torch (>=2.5.1)
|
|
60
60
|
Requires-Dist: trame-vtk (>=2.0.0) ; extra == "all"
|
|
61
61
|
Requires-Dist: trame-vtk (>=2.0.0) ; extra == "viz3d"
|
|
62
|
-
Requires-Dist: transformers (>=5.5.0,<6)
|
|
63
62
|
Requires-Dist: ty (>=0.0.41) ; extra == "all"
|
|
64
63
|
Requires-Dist: ty (>=0.0.41) ; extra == "dev"
|
|
65
64
|
Project-URL: Homepage, https://github.com/Flux-Frontiers/pycode_kg
|
|
@@ -73,7 +72,7 @@ Description-Content-Type: text/markdown
|
|
|
73
72
|
|
|
74
73
|
[](https://www.python.org/)
|
|
75
74
|
[](https://www.elastic.co/licensing/elastic-license)
|
|
76
|
-
[](https://github.com/Flux-Frontiers/pycode_kg/releases)
|
|
77
76
|
[](https://github.com/Flux-Frontiers/pycode_kg/actions/workflows/ci.yml)
|
|
78
77
|
[](https://python-poetry.org/)
|
|
79
78
|
[](https://zenodo.org/badge/latestdoi/1202379010)
|
|
@@ -270,17 +269,17 @@ If you use PyCodeKG in your research or project, please cite it:
|
|
|
270
269
|
|
|
271
270
|
[](https://zenodo.org/badge/latestdoi/1202379010)
|
|
272
271
|
|
|
273
|
-
> Suchanek, E. G. (2026). *PyCodeKG: A Knowledge Graph for Python Codebases* (Version 0.21.
|
|
272
|
+
> Suchanek, E. G. (2026). *PyCodeKG: A Knowledge Graph for Python Codebases* (Version 0.21.4) [Software]. Flux-Frontiers. https://doi.org/10.5281/zenodo.19737993
|
|
274
273
|
|
|
275
274
|
```bibtex
|
|
276
275
|
@software{suchanek_pycode_kg,
|
|
277
276
|
author = {Suchanek, Eric G.},
|
|
278
277
|
title = {{PyCodeKG}: A Knowledge Graph for Python Codebases},
|
|
279
|
-
version = {0.21.
|
|
278
|
+
version = {0.21.4},
|
|
280
279
|
year = {2026},
|
|
281
280
|
publisher = {Flux-Frontiers},
|
|
282
281
|
url = {https://github.com/Flux-Frontiers/pycode_kg},
|
|
283
|
-
doi = {10.5281/zenodo.
|
|
282
|
+
doi = {10.5281/zenodo.19737993},
|
|
284
283
|
}
|
|
285
284
|
```
|
|
286
285
|
|
|
@@ -300,5 +299,5 @@ If you use PyCodeKG in your research or project, please cite it:
|
|
|
300
299
|
|
|
301
300
|
---
|
|
302
301
|
|
|
303
|
-
*Built for Python developers and AI agents that work alongside them — egs · Last updated
|
|
302
|
+
*Built for Python developers and AI agents that work alongside them — egs · Last updated August 2026*
|
|
304
303
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
[](https://www.python.org/)
|
|
7
7
|
[](https://www.elastic.co/licensing/elastic-license)
|
|
8
|
-
[](https://github.com/Flux-Frontiers/pycode_kg/releases)
|
|
9
9
|
[](https://github.com/Flux-Frontiers/pycode_kg/actions/workflows/ci.yml)
|
|
10
10
|
[](https://python-poetry.org/)
|
|
11
11
|
[](https://zenodo.org/badge/latestdoi/1202379010)
|
|
@@ -202,17 +202,17 @@ If you use PyCodeKG in your research or project, please cite it:
|
|
|
202
202
|
|
|
203
203
|
[](https://zenodo.org/badge/latestdoi/1202379010)
|
|
204
204
|
|
|
205
|
-
> Suchanek, E. G. (2026). *PyCodeKG: A Knowledge Graph for Python Codebases* (Version 0.21.
|
|
205
|
+
> Suchanek, E. G. (2026). *PyCodeKG: A Knowledge Graph for Python Codebases* (Version 0.21.4) [Software]. Flux-Frontiers. https://doi.org/10.5281/zenodo.19737993
|
|
206
206
|
|
|
207
207
|
```bibtex
|
|
208
208
|
@software{suchanek_pycode_kg,
|
|
209
209
|
author = {Suchanek, Eric G.},
|
|
210
210
|
title = {{PyCodeKG}: A Knowledge Graph for Python Codebases},
|
|
211
|
-
version = {0.21.
|
|
211
|
+
version = {0.21.4},
|
|
212
212
|
year = {2026},
|
|
213
213
|
publisher = {Flux-Frontiers},
|
|
214
214
|
url = {https://github.com/Flux-Frontiers/pycode_kg},
|
|
215
|
-
doi = {10.5281/zenodo.
|
|
215
|
+
doi = {10.5281/zenodo.19737993},
|
|
216
216
|
}
|
|
217
217
|
```
|
|
218
218
|
|
|
@@ -232,4 +232,4 @@ If you use PyCodeKG in your research or project, please cite it:
|
|
|
232
232
|
|
|
233
233
|
---
|
|
234
234
|
|
|
235
|
-
*Built for Python developers and AI agents that work alongside them — egs · Last updated
|
|
235
|
+
*Built for Python developers and AI agents that work alongside them — egs · Last updated August 2026*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# pyproject.toml — PyCodeKG package configuration (PEP 621)
|
|
2
2
|
#
|
|
3
3
|
# Author: Eric G. Suchanek, PhD
|
|
4
|
-
# Last Revision: 2026-
|
|
4
|
+
# Last Revision: 2026-08-03
|
|
5
5
|
#
|
|
6
6
|
# Build system : Poetry 2.x with PEP 621 [project] table
|
|
7
7
|
#
|
|
@@ -70,7 +70,7 @@ torch = [
|
|
|
70
70
|
# ---------------------------------------------------------------------------
|
|
71
71
|
[project]
|
|
72
72
|
name = "pycode-kg"
|
|
73
|
-
version = "0.21.
|
|
73
|
+
version = "0.21.4"
|
|
74
74
|
description = "A tool to build a searchable knowledge graph from Python repositories"
|
|
75
75
|
readme = "README.md"
|
|
76
76
|
license = "Elastic-2.0"
|
|
@@ -101,11 +101,28 @@ dependencies = [
|
|
|
101
101
|
"numpy>=1.24.0",
|
|
102
102
|
"pandas>=2.0.0",
|
|
103
103
|
"rich>=14.3.3,<15",
|
|
104
|
-
"safetensors>=0.5.0",
|
|
105
104
|
"sentence-transformers>=5.4.1",
|
|
105
|
+
# Core, not optional: kg.py hard-codes vector_backend="sqlite-vec", so every
|
|
106
|
+
# build/query path goes through kg_utils.vector_backend.SqliteVecBackend,
|
|
107
|
+
# which imports sqlite_vec at connect time. Exact pin — sqlite-vec is pre-1.0
|
|
108
|
+
# and breaking minors ship under 0.x; kgmodule-utils pins the same ==0.1.9.
|
|
109
|
+
# Declared here rather than pulled via kgmodule-utils[sqlite-vec] so the
|
|
110
|
+
# requirement is visible in this project's own metadata (doc-kg 0.20.0 does
|
|
111
|
+
# the same).
|
|
112
|
+
"sqlite-vec==0.1.9",
|
|
113
|
+
# Kept direct even though `[semantic]` carries the same `>=2.5.1`: the
|
|
114
|
+
# `[tool.poetry.dependencies]` block above routes linux torch to the CPU-only
|
|
115
|
+
# index, and that enrichment only applies to a dependency this project
|
|
116
|
+
# declares itself. Dropping it here would pull the ~3.4G CUDA wheel back in.
|
|
106
117
|
"torch>=2.5.1",
|
|
107
|
-
|
|
108
|
-
|
|
118
|
+
# `[semantic]` is safe again as of kgmodule-utils 0.10.0, which moved
|
|
119
|
+
# `lancedb` out into its own `[lancedb]` extra. It now carries numpy, rich,
|
|
120
|
+
# sentence-transformers, sqlite-vec, torch and transformers under the same
|
|
121
|
+
# constraints used here, so `transformers` needs no direct entry.
|
|
122
|
+
# `[viz]` stays off: kg_utils.viz imports pyvis lazily, so it would force
|
|
123
|
+
# pyvis into every bare install when it belongs in this project's own `viz`
|
|
124
|
+
# extra.
|
|
125
|
+
"kgmodule-utils[semantic]>=0.10.0",
|
|
109
126
|
]
|
|
110
127
|
|
|
111
128
|
[project.optional-dependencies]
|
|
@@ -127,7 +144,7 @@ viz3d = [
|
|
|
127
144
|
"markdown>=3.6",
|
|
128
145
|
"param>=2.0.0",
|
|
129
146
|
"PyQt5>=5.15.0",
|
|
130
|
-
"pyvista
|
|
147
|
+
"pyvista>=0.44.0",
|
|
131
148
|
"pyvistaqt>=0.11.0",
|
|
132
149
|
"trame-vtk>=2.0.0",
|
|
133
150
|
]
|
|
@@ -149,7 +166,7 @@ all = [
|
|
|
149
166
|
"PyQt5>=5.15.0",
|
|
150
167
|
"pytest>=8.0.0",
|
|
151
168
|
"pytest-cov>=5.0.0",
|
|
152
|
-
"pyvista
|
|
169
|
+
"pyvista>=0.44.0",
|
|
153
170
|
"pyvistaqt>=0.11.0",
|
|
154
171
|
"pyvis>=0.3.2",
|
|
155
172
|
"ruff>=0.4.0",
|
|
@@ -190,7 +207,13 @@ target-version = "py312"
|
|
|
190
207
|
# Vendored agent scratch dirs (Claude Code skills, Codex) — not project code.
|
|
191
208
|
# The pre-commit hook's exclude can't cover these (it runs with
|
|
192
209
|
# pass_filenames: false), so the exclusion must live here.
|
|
193
|
-
extend-exclude = [".claude", ".agents", ".codex"]
|
|
210
|
+
extend-exclude = [".claude", ".agents", ".codex", "*.md"]
|
|
211
|
+
# ruff 0.16 formats Python code blocks inside Markdown as stable behaviour
|
|
212
|
+
# (0.15 gates it behind preview), so `ruff format --check .` starts rewriting
|
|
213
|
+
# prose docs the moment the lock resolves 0.16 — a failure that looks unrelated
|
|
214
|
+
# to whatever change triggered the relock. Doc snippets are illustrative and
|
|
215
|
+
# often deliberately aligned, so keep them out of the formatter's reach.
|
|
216
|
+
# doc_kg and ftree_kg carry the same exclusion.
|
|
194
217
|
|
|
195
218
|
[tool.ruff.lint]
|
|
196
219
|
# B023, BLE001, PLC0415 replace the retired pylint hook's cell-var-from-loop,
|
|
@@ -32,7 +32,7 @@ KGModule SDK (build new domain KGs)::
|
|
|
32
32
|
from pycode_kg import KGModule, KGExtractor, PyCodeKGExtractor, NodeSpec, EdgeSpec
|
|
33
33
|
"""
|
|
34
34
|
|
|
35
|
-
__version__ = "0.21.
|
|
35
|
+
__version__ = "0.21.4"
|
|
36
36
|
__author__ = "Eric G. Suchanek, PhD"
|
|
37
37
|
|
|
38
38
|
# Low-level primitives (locked v0 contract)
|
|
@@ -4,7 +4,7 @@ Measures module interaction complexity: how many unique modules each module call
|
|
|
4
4
|
For well-modularized codebases, identifies orchestrator and hub modules.
|
|
5
5
|
|
|
6
6
|
Author: Eric G. Suchanek, PhD
|
|
7
|
-
Last Revision: 2026-
|
|
7
|
+
Last Revision: 2026-08-02 16:34:57
|
|
8
8
|
License: Elastic 2.0
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -6,7 +6,7 @@ CLI command for installing PyCodeKG git hooks:
|
|
|
6
6
|
install-hooks — install the pre-commit snapshot hook into .git/hooks/
|
|
7
7
|
|
|
8
8
|
Author: Eric G. Suchanek, PhD
|
|
9
|
-
Last Revision: 2026-
|
|
9
|
+
Last Revision: 2026-08-02 16:34:57
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
12
|
from __future__ import annotations
|
|
@@ -23,7 +23,7 @@ No persistence, no embeddings, no LLMs—just pure AST extraction. Integration w
|
|
|
23
23
|
vector databases and semantic search happens downstream.
|
|
24
24
|
|
|
25
25
|
Author: Eric G. Suchanek, PhD
|
|
26
|
-
Last Revision: 2026-
|
|
26
|
+
Last Revision: 2026-08-02 16:34:57
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
29
|
from __future__ import annotations
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|