sunholo 0.81.1__tar.gz → 0.81.2__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.
- {sunholo-0.81.1 → sunholo-0.81.2}/PKG-INFO +2 -2
- {sunholo-0.81.1 → sunholo-0.81.2}/setup.py +1 -1
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/auth/refresh.py +14 -8
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/gcs/download_url.py +5 -5
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo.egg-info/PKG-INFO +2 -2
- {sunholo-0.81.1 → sunholo-0.81.2}/LICENSE.txt +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/MANIFEST.in +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/README.md +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/setup.cfg +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/flask/qna_routes.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/flask/vac_routes.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/route.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/agents/swagger.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/archive/archive.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/auth/gcloud.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/auth/run.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/azure/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/azure/auth.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/azure/blobs.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/azure/event_grid.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/bots/discord.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/azure.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/encode_metadata.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/images.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/process_chunker_data.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/publish.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/pubsub.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/cli.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/configs.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/deploy.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/embedder.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/swagger.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/cli/vertex.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/components/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/components/llm.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/components/retriever.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/custom_logging.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/alloydb_client.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/database.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/database/uuid.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/discovery_engine/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/discovery_engine/chunker_handler.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/discovery_engine/create_new.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/gcs/download_folder.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/invoke/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/invoke/direct_vac_func.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/invoke/invoke_vac_utils.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/llamaindex/llamaindex_class.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/llamaindex/user_history.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/patches/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/patches/langchain/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/patches/langchain/lancedb.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/patches/langchain/vertexai.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/qna/retry.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/tools/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/tools/web_browser.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/api_key.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/big_context.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/config.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/config_class.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/gcp.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/parsers.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/utils/version.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/extensions_call.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/extensions_class.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/genai_functions.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/init.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/safety.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo/vertex/type_dict_to_json.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo.egg-info/SOURCES.txt +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/tests/test_chat_history.py +0 -0
- {sunholo-0.81.1 → sunholo-0.81.2}/tests/test_config.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.81.
|
|
3
|
+
Version: 0.81.2
|
|
4
4
|
Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
|
|
5
5
|
Home-page: https://github.com/sunholo-data/sunholo-py
|
|
6
|
-
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.81.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.81.2.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -7,12 +7,14 @@ from ..utils.gcp import is_running_on_gcp
|
|
|
7
7
|
from ..custom_logging import log
|
|
8
8
|
|
|
9
9
|
def get_default_email():
|
|
10
|
-
|
|
11
|
-
log.error("Could not refresh the credentials properly.")
|
|
12
|
-
return None
|
|
10
|
+
|
|
13
11
|
# https://stackoverflow.com/questions/64234214/how-to-generate-a-blob-signed-url-in-google-cloud-run
|
|
14
12
|
|
|
15
|
-
gcs_credentials, project_id =
|
|
13
|
+
gcs_credentials, project_id = refresh_credentials()
|
|
14
|
+
|
|
15
|
+
if gcs_credentials is None:
|
|
16
|
+
log.error("Could not refresh the credentials properly.")
|
|
17
|
+
return None
|
|
16
18
|
|
|
17
19
|
service_account_email = getattr(gcs_credentials, 'service_account_email', None)
|
|
18
20
|
# If you use a service account credential, you can use the embedded email
|
|
@@ -34,20 +36,24 @@ def get_default_creds():
|
|
|
34
36
|
return gcs_credentials, project_id
|
|
35
37
|
|
|
36
38
|
def refresh_credentials():
|
|
39
|
+
"""
|
|
40
|
+
Need to refresh to get a valid email/token for signing URLs from a default service account
|
|
41
|
+
"""
|
|
37
42
|
if not is_running_on_gcp():
|
|
38
43
|
log.debug("Not running on Google Cloud so no credentials available for GCS.")
|
|
39
|
-
return
|
|
44
|
+
return None, None
|
|
40
45
|
|
|
41
46
|
gcs_credentials, project_id = get_default_creds()
|
|
42
47
|
|
|
43
48
|
if not gcs_credentials.token or gcs_credentials.expired or not gcs_credentials.valid:
|
|
44
49
|
try:
|
|
45
|
-
|
|
50
|
+
r = requests.Request()
|
|
51
|
+
gcs_credentials.refresh(r)
|
|
46
52
|
|
|
47
|
-
return
|
|
53
|
+
return gcs_credentials, project_id
|
|
48
54
|
|
|
49
55
|
except Exception as e:
|
|
50
56
|
log.error(f"Failed to refresh gcs credentials: {e}")
|
|
51
57
|
|
|
52
|
-
return
|
|
58
|
+
return None, None
|
|
53
59
|
|
|
@@ -123,8 +123,8 @@ def sign_gcs_url(bucket_name:str, object_name:str, expiry_secs:int = 86400) -> O
|
|
|
123
123
|
return url
|
|
124
124
|
except RefreshError:
|
|
125
125
|
log.info("Refreshing gcs_credentials due to token expiration.")
|
|
126
|
-
|
|
127
|
-
if
|
|
126
|
+
credentials, token = refresh_credentials()
|
|
127
|
+
if credentials:
|
|
128
128
|
return sign_gcs_url(bucket_name, object_name, expiry_secs)
|
|
129
129
|
log.error("Failed to refresh gcs credentials")
|
|
130
130
|
return None
|
|
@@ -161,9 +161,9 @@ def construct_download_link_simple(bucket_name:str, object_name:str) -> Tuple[st
|
|
|
161
161
|
"""
|
|
162
162
|
|
|
163
163
|
if object_name.startswith("gs://"):
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
public_url = object_name.replace("gs://", "https://storage.cloud.google.com")
|
|
165
|
+
else:
|
|
166
|
+
public_url = f"https://storage.cloud.google.com/{bucket_name}/{quote(object_name)}"
|
|
167
167
|
filename = os.path.basename(object_name)
|
|
168
168
|
return public_url, filename, False
|
|
169
169
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.81.
|
|
3
|
+
Version: 0.81.2
|
|
4
4
|
Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
|
|
5
5
|
Home-page: https://github.com/sunholo-data/sunholo-py
|
|
6
|
-
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.81.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.81.2.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|