cornflow 1.1.2__tar.gz → 1.1.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.
- {cornflow-1.1.2/cornflow.egg-info → cornflow-1.1.4}/PKG-INFO +1 -1
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/login.py +18 -5
- {cornflow-1.1.2 → cornflow-1.1.4/cornflow.egg-info}/PKG-INFO +1 -1
- {cornflow-1.1.2 → cornflow-1.1.4}/setup.py +1 -1
- {cornflow-1.1.2 → cornflow-1.1.4}/MANIFEST.in +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/README.rst +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/airflow_config/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/airflow_config/airflow_local_settings.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/airflow_config/plugins/XCom/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/airflow_config/plugins/XCom/gce_xcom_backend.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/airflow_config/plugins/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/airflow_config/webserver_ldap.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/app.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/actions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/arguments.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/config.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/migrations.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/permissions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/roles.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/schemas.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/service.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/tools/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/tools/api_generator.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/tools/endpoint_tools.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/tools/models_tools.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/tools/schema_generator.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/tools/schemas_tools.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/tools/tools.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/users.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/utils.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/cli/views.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/access.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/actions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/cleanup.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/dag.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/permissions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/roles.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/schemas.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/users.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/commands/views.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/config.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/action.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/apiview.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/case.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/dag.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/data_check.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/example_data.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/execution.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/health.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/instance.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/licenses.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/main_alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/meta_resource.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/permission.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/roles.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/schemas.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/signup.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/tables.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/token.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/user.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/endpoints/user_role.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/gunicorn.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/README +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/alembic.ini +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/env.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/script.py.mako +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/00757b557b02_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/1af47a419bbd_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/4aac5e0c6e66_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/7c3ea5ab5501_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/991b98e24225_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/a472b5ad50b7_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/c2db9409cb5f_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/c8a6c762e818_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/ca449af8034c_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/d0e0700dcd8e_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/d1b5be1f0549_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/e1a50dae1ac9_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/e937a5234ce4_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/ebdd955fcc5e_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/migrations/versions/f3bee20314a2_.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/action.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/base_data_model.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/case.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/dag.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/dag_permissions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/execution.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/instance.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/main_alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/meta_models.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/permissions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/role.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/user.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/user_role.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/models/view.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/action.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/case.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/common.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/dag.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/example_data.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/execution.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/health.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/instance.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/main_alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/model_json.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/patch.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/permissions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/query.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/role.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/schemas.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/solution_log.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/tables.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/user.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/user_role.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/schemas/view.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/authentication/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/authentication/auth.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/authentication/decorators.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/authentication/ldap.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/compress.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/const.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/email.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/exceptions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/licenses.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/log_config.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/query_tools.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/utils.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/utils_tables.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/shared/validators.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/const.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/custom_liveServer.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/custom_test_case.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/integration/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/integration/test_commands.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/integration/test_cornflowclient.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/ldap/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/ldap/test_ldap_authentication.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/__init__.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_actions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_apiview.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_cases.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_cli.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_commands.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_dags.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_data_checks.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_example_data.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_executions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_generate_from_schema.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_health.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_instances.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_instances_file.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_licenses.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_log_in.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_main_alarms.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_permissions.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_roles.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_schema_from_models.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_schemas.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_sign_up.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_tables.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_token.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/test_users.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow/tests/unit/tools.py +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow.egg-info/SOURCES.txt +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow.egg-info/dependency_links.txt +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow.egg-info/entry_points.txt +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow.egg-info/requires.txt +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/cornflow.egg-info/top_level.txt +0 -0
- {cornflow-1.1.2 → cornflow-1.1.4}/setup.cfg +0 -0
@@ -34,6 +34,7 @@ class LoginBaseEndpoint(BaseMetaResource):
|
|
34
34
|
"""
|
35
35
|
Base endpoint to perform a login action from a user
|
36
36
|
"""
|
37
|
+
|
37
38
|
def __init__(self):
|
38
39
|
super().__init__()
|
39
40
|
self.ldap_class = LDAPBase
|
@@ -102,7 +103,9 @@ class LoginBaseEndpoint(BaseMetaResource):
|
|
102
103
|
raise InvalidCredentials()
|
103
104
|
user = self.data_model.get_one_object(username=username)
|
104
105
|
if not user:
|
105
|
-
current_app.logger.info(
|
106
|
+
current_app.logger.info(
|
107
|
+
f"LDAP user {username} does not exist and is created"
|
108
|
+
)
|
106
109
|
email = ldap_obj.get_user_email(username)
|
107
110
|
if not email:
|
108
111
|
email = ""
|
@@ -122,10 +125,14 @@ class LoginBaseEndpoint(BaseMetaResource):
|
|
122
125
|
|
123
126
|
except IntegrityError as e:
|
124
127
|
db.session.rollback()
|
125
|
-
current_app.logger.error(
|
128
|
+
current_app.logger.error(
|
129
|
+
f"Integrity error on user role assignment on log in: {e}"
|
130
|
+
)
|
126
131
|
except DBAPIError as e:
|
127
132
|
db.session.rollback()
|
128
|
-
current_app.logger.error(
|
133
|
+
current_app.logger.error(
|
134
|
+
f"Unknown error on user role assignment on log in: {e}"
|
135
|
+
)
|
129
136
|
|
130
137
|
return user
|
131
138
|
|
@@ -163,7 +170,9 @@ class LoginBaseEndpoint(BaseMetaResource):
|
|
163
170
|
user = self.data_model.get_one_object(username=username)
|
164
171
|
|
165
172
|
if not user:
|
166
|
-
current_app.logger.info(
|
173
|
+
current_app.logger.info(
|
174
|
+
f"OpenID user {username} does not exist and is created"
|
175
|
+
)
|
167
176
|
|
168
177
|
data = {"username": username, "email": username}
|
169
178
|
|
@@ -183,7 +192,11 @@ class LoginBaseEndpoint(BaseMetaResource):
|
|
183
192
|
|
184
193
|
def check_last_password_change(user):
|
185
194
|
if user.pwd_last_change:
|
186
|
-
if
|
195
|
+
if (
|
196
|
+
user.pwd_last_change
|
197
|
+
+ timedelta(days=int(current_app.config["PWD_ROTATION_TIME"]))
|
198
|
+
< datetime.utcnow()
|
199
|
+
):
|
187
200
|
return True
|
188
201
|
return False
|
189
202
|
|
@@ -9,7 +9,7 @@ with open("requirements.txt", "r") as fh:
|
|
9
9
|
|
10
10
|
setuptools.setup(
|
11
11
|
name="cornflow",
|
12
|
-
version="1.1.
|
12
|
+
version="1.1.4",
|
13
13
|
author="baobab soluciones",
|
14
14
|
author_email="cornflow@baobabsoluciones.es",
|
15
15
|
description="Cornflow is an open source multi-solver optimization server with a REST API built using flask.",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|