sovai 0.2.53__tar.gz → 0.2.55__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.
- {sovai-0.2.53 → sovai-0.2.55}/PKG-INFO +6 -6
- {sovai-0.2.53 → sovai-0.2.55}/pyproject.toml +15 -6
- {sovai-0.2.53 → sovai-0.2.55}/sovai/__init__.py +2 -1
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/news/news_plots.py +27 -23
- {sovai-0.2.53 → sovai-0.2.55}/LICENSE +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/README.md +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/data/codes.parq +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/data/tickers.parq +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/.DS_Store +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/api_config.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/assets/dropdown.css +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/assets/features_mapping.parq +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/basic_auth.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/computations/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/computations/functions.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/errors/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/errors/sovai_errors.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/anomalies.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/ask_df_llm.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/change_point_generator.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/clustering.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/core_kshape.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/cum_sum_torch.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/cusum.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/dimensionality_reduction.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/feature_extraction.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/feature_importance.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/feature_neutralizer.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/filter_df.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/fractional_differencing.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/nowcasting.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/pairwise.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/pandas_extensions.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/parallel_functions.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/pfa_feature_selector.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/regime_change.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/regime_change_pca.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/shapley_global_importance.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/shapley_importance.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/signal_evaluation.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/technical_indicators.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/time_decomposition.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/weight_optimization.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/get_compute.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/get_data copy.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/get_data.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/get_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/get_reports.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/get_tools.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/accounting/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/accounting/accounting_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/allocation/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/allocation/allocation_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/bankruptcy/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/bankruptcy/bankruptcy_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/breakout/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/breakout/breakout_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/corp_risk/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/corp_risk/corp_risk_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/earnings_surprise/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/earnings_surprise/earnings_surprise_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/insider/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/insider/insider_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/institutional/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/institutional/institutional_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/news/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/ratios/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/ratios/ratios_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/accounting/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/accounting/accounting_balance_sheet.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/bankruptcy/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/bankruptcy/bankruptcy_monthly_top.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/general/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/general/general_plots.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/news/__inti__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/news/news_econometric_analysis.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/studies/nowcasting.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/token_auth.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/authentication/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/authentication/authentication.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/graphs.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/llm_code_generator.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/sec_10_k_8_k_filings.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/sec_edgar_search.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/__init__.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3_part_high copy 2.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3_part_high copy.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3_part_high.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/converter.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/datetime_formats.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/file_management.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/get_tickers.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/helpers.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/pandas_extensions copy.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/plot.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/port_manager.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/stream.py +0 -0
- {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/verbose_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: sovai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.55
|
|
4
4
|
Summary: python for asset management
|
|
5
5
|
License: Proprietary License
|
|
6
6
|
Author: Derek Snow
|
|
@@ -8,12 +8,12 @@ Author-email: d.snow@outlook.com
|
|
|
8
8
|
Requires-Python: >=3.10
|
|
9
9
|
Classifier: License :: Other/Proprietary License
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
13
|
Provides-Extra: full
|
|
16
|
-
Requires-Dist:
|
|
14
|
+
Requires-Dist: aiobotocore (==2.21.1)
|
|
15
|
+
Requires-Dist: boto3 (==1.37.1)
|
|
16
|
+
Requires-Dist: botocore (==1.37.1)
|
|
17
17
|
Requires-Dist: dash ; extra == "full"
|
|
18
18
|
Requires-Dist: dash-bootstrap-components ; extra == "full"
|
|
19
19
|
Requires-Dist: edgar-tool (>=1.3.3)
|
|
@@ -22,7 +22,6 @@ Requires-Dist: fastapi-cache2[redis] (>=0.2.1)
|
|
|
22
22
|
Requires-Dist: fsspec (==2024.10.0)
|
|
23
23
|
Requires-Dist: gcsfs (==2024.10.0)
|
|
24
24
|
Requires-Dist: great-tables ; extra == "full"
|
|
25
|
-
Requires-Dist: ipywidgets (>=8.1.6,<9.0.0)
|
|
26
25
|
Requires-Dist: ipywidgets ; extra == "full"
|
|
27
26
|
Requires-Dist: joblib (>=1.0)
|
|
28
27
|
Requires-Dist: lightgbm ; extra == "full"
|
|
@@ -34,7 +33,6 @@ Requires-Dist: numpy (>=1.20)
|
|
|
34
33
|
Requires-Dist: openai ; extra == "full"
|
|
35
34
|
Requires-Dist: pandas (>=1.0)
|
|
36
35
|
Requires-Dist: pexpect ; extra == "full"
|
|
37
|
-
Requires-Dist: plotly (>=6.0.1,<7.0.0)
|
|
38
36
|
Requires-Dist: plotly ; extra == "full"
|
|
39
37
|
Requires-Dist: polars (>=1.2)
|
|
40
38
|
Requires-Dist: polars-talib ; extra == "full"
|
|
@@ -46,10 +44,12 @@ Requires-Dist: rapidfuzz (>=3.9.7)
|
|
|
46
44
|
Requires-Dist: requests (>=2.20)
|
|
47
45
|
Requires-Dist: ruptures ; extra == "full"
|
|
48
46
|
Requires-Dist: s3fs (==2024.10.0)
|
|
47
|
+
Requires-Dist: s3transfer (==0.11.3)
|
|
49
48
|
Requires-Dist: scikit-learn ; extra == "full"
|
|
50
49
|
Requires-Dist: scipy ; extra == "full"
|
|
51
50
|
Requires-Dist: seaborn (>=0.13.2)
|
|
52
51
|
Requires-Dist: shap ; extra == "full"
|
|
52
|
+
Requires-Dist: skfolio (>=0.9.0,<0.10.0)
|
|
53
53
|
Requires-Dist: skfolio ; extra == "full"
|
|
54
54
|
Requires-Dist: statsforecast ; extra == "full"
|
|
55
55
|
Requires-Dist: tensorly ; extra == "full"
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sovai"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.55"
|
|
8
8
|
description = "python for asset management"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "Derek Snow", email = "d.snow@outlook.com"}
|
|
@@ -20,7 +20,10 @@ dependencies = [
|
|
|
20
20
|
"python-dateutil>=2.8",
|
|
21
21
|
"python-dotenv>=0.10",
|
|
22
22
|
"polars>=1.2",
|
|
23
|
-
"boto3
|
|
23
|
+
"boto3==1.37.1",
|
|
24
|
+
"botocore==1.37.1",
|
|
25
|
+
"s3transfer==0.11.3",
|
|
26
|
+
"aiobotocore==2.21.1",
|
|
24
27
|
"joblib>=1.0",
|
|
25
28
|
"rapidfuzz>=3.9.7",
|
|
26
29
|
"edgar-tool>=1.3.3",
|
|
@@ -33,9 +36,8 @@ dependencies = [
|
|
|
33
36
|
"gcsfs==2024.10.0",
|
|
34
37
|
"fastapi-cache>=0.1.0",
|
|
35
38
|
"fastapi-cache2[redis]>=0.2.1",
|
|
36
|
-
"plotly (>=6.0.1,<7.0.0)",
|
|
37
39
|
"tqdm (>=4.67.1,<5.0.0)",
|
|
38
|
-
"
|
|
40
|
+
"skfolio (>=0.9.0,<0.10.0)"
|
|
39
41
|
]
|
|
40
42
|
|
|
41
43
|
[tool.poetry]
|
|
@@ -65,7 +67,7 @@ exclude = [
|
|
|
65
67
|
|
|
66
68
|
# Keep Poetry's dependencies section for detailed version specs
|
|
67
69
|
[tool.poetry.dependencies]
|
|
68
|
-
python = "^3.
|
|
70
|
+
python = "^3.12"
|
|
69
71
|
pandas = ">=1.0"
|
|
70
72
|
numpy = ">=1.20"
|
|
71
73
|
pyarrow = ">=5.0"
|
|
@@ -73,12 +75,16 @@ requests = ">=2.20"
|
|
|
73
75
|
python-dateutil = ">=2.8"
|
|
74
76
|
python-dotenv = ">=0.10"
|
|
75
77
|
polars = "^1.2"
|
|
76
|
-
boto3 = "
|
|
78
|
+
boto3 = "1.37.1"
|
|
79
|
+
botocore = "1.37.1"
|
|
80
|
+
s3transfer = "0.11.3"
|
|
81
|
+
aiobotocore = "2.21.1"
|
|
77
82
|
joblib = ">=1.0"
|
|
78
83
|
rapidfuzz = "^3.9.7"
|
|
79
84
|
edgar-tool = "^1.3.3"
|
|
80
85
|
scipy = {version = ">=1.0", optional = true}
|
|
81
86
|
matplotlib = {version = ">=3.0", optional = true}
|
|
87
|
+
plotly = {version = ">=5.0", optional = true}
|
|
82
88
|
scikit-learn = {version = ">=1.0", optional = true}
|
|
83
89
|
numba = {version = ">=0.50", optional = true}
|
|
84
90
|
dash = {version = ">=2.0", optional = true}
|
|
@@ -94,6 +100,7 @@ pexpect = {version = ">=4.9.0", optional = true}
|
|
|
94
100
|
lightgbm = {version = ">=4.5.0", optional = true}
|
|
95
101
|
polars-talib = {version = "0.1.3", optional = true}
|
|
96
102
|
dash-bootstrap-components = {version = ">=1.6.0", optional = true}
|
|
103
|
+
ipywidgets = {version = ">=8.1.6,<9.0.0", optional = true} # Added here as optional
|
|
97
104
|
yachalk = "^0.1.6"
|
|
98
105
|
pyvis = "^0.3.2"
|
|
99
106
|
networkx = "^3.3"
|
|
@@ -139,3 +146,5 @@ traitlets = "^5.14.3"
|
|
|
139
146
|
jupyterlab = "^4.2.5"
|
|
140
147
|
pytest = "^7.0"
|
|
141
148
|
black = "^22.0"
|
|
149
|
+
jupyter = "^1.1.1"
|
|
150
|
+
ipykernel = "^6.29.5"
|
|
@@ -32,7 +32,8 @@ try:
|
|
|
32
32
|
from .get_tools import sec_search, sec_filing, code, sec_graph
|
|
33
33
|
HAS_FULL_INSTALL = True
|
|
34
34
|
except ImportError as e:
|
|
35
|
-
print(
|
|
35
|
+
print("this is the lean installation, for full use sovai[full]")
|
|
36
|
+
# print(f"ImportError: {e}")
|
|
36
37
|
HAS_FULL_INSTALL = False
|
|
37
38
|
|
|
38
39
|
|
|
@@ -4,7 +4,34 @@ import ipywidgets as widgets
|
|
|
4
4
|
from ipywidgets import interact
|
|
5
5
|
from sovai import data
|
|
6
6
|
|
|
7
|
+
|
|
8
|
+
import pandas as pd
|
|
9
|
+
import numpy as np
|
|
10
|
+
import plotly.graph_objects as go
|
|
11
|
+
from plotly.subplots import make_subplots
|
|
12
|
+
import dash
|
|
13
|
+
from dash import dcc, html
|
|
14
|
+
from dash.dependencies import Input, Output, State
|
|
7
15
|
import random
|
|
16
|
+
from scipy.optimize import minimize
|
|
17
|
+
from scipy import stats
|
|
18
|
+
from sovai.utils.port_manager import get_unique_port
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
import pandas as pd
|
|
22
|
+
import numpy as np
|
|
23
|
+
|
|
24
|
+
import random
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
import dash
|
|
28
|
+
from dash import dcc, html, Input, Output, State
|
|
29
|
+
import dash_bootstrap_components as dbc
|
|
30
|
+
import plotly.graph_objs as go
|
|
31
|
+
import pandas as pd
|
|
32
|
+
import numpy as np
|
|
33
|
+
|
|
34
|
+
|
|
8
35
|
|
|
9
36
|
# Global dictionary to keep track of apps and their ports
|
|
10
37
|
app_ports = {}
|
|
@@ -118,23 +145,6 @@ def plot_above_sentiment_returns(df_news=None, tickers=None):
|
|
|
118
145
|
fig.show()
|
|
119
146
|
|
|
120
147
|
|
|
121
|
-
|
|
122
|
-
import pandas as pd
|
|
123
|
-
import numpy as np
|
|
124
|
-
import plotly.graph_objects as go
|
|
125
|
-
from plotly.subplots import make_subplots
|
|
126
|
-
import dash
|
|
127
|
-
from dash import dcc, html
|
|
128
|
-
from dash.dependencies import Input, Output, State
|
|
129
|
-
import random
|
|
130
|
-
from scipy.optimize import minimize
|
|
131
|
-
from scipy import stats
|
|
132
|
-
from sovai.utils.port_manager import get_unique_port
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
import pandas as pd
|
|
137
|
-
import numpy as np
|
|
138
148
|
# from statsmodels.tsa.stattools import adfuller, coint
|
|
139
149
|
# from statsmodels.tsa.vector_ar.vecm import VECM
|
|
140
150
|
|
|
@@ -550,12 +560,6 @@ def plot_news_daily(ticker='NVDA'):
|
|
|
550
560
|
# plot_news_daily(ticker='AAPL')
|
|
551
561
|
|
|
552
562
|
|
|
553
|
-
import dash
|
|
554
|
-
from dash import dcc, html, Input, Output, State
|
|
555
|
-
import dash_bootstrap_components as dbc
|
|
556
|
-
import plotly.graph_objs as go
|
|
557
|
-
import pandas as pd
|
|
558
|
-
import numpy as np
|
|
559
563
|
|
|
560
564
|
def dash_news_ts_analysis(df_sentiment, df_polarity, df_topic):
|
|
561
565
|
# Dynamically get all topics from df_sentiment
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|