omnata-plugin-devkit 0.10.15a100__tar.gz → 0.10.15a115__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.
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/PKG-INFO +1 -1
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/pyproject.toml +1 -1
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/TUNNEL_TEST.sql.jinja +1 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/manifest.yml.jinja +0 -5
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/plugin_uploader.py +32 -1
- omnata_plugin_devkit-0.10.15a100/src/omnata_plugin_devkit/jinja_templates/CREATE_EXTERNAL_ACCESS_INTEGRATION.sql.jinja +0 -61
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/LICENSE +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/README.md +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/airbyte_wrapper.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/cli/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/development.ipynb +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/development_session.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/initialiser.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/API_LIMITS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/ASSIGN_OUTBOUND_TARGET_TYPE.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CONFIGURATION_FORM.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CONFIGURE_APIS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_FORM.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CONNECTION_TEST.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CONSTRUCT_FORM_OPTION.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CREATE_BILLING_EVENTS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CREATE_GENERIC_SECRET_OBJECT_FROM_EXISTING.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CREATE_NETWORK_RULE_OBJECT_FROM_EXISTING.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/CREATE_OAUTH_SECRET_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/INBOUND_LIST_STREAMS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/LIST_STAGES.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/NETWORK_ADDRESSES.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/NGROK_POST_TUNNEL_FIELDS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/OUTBOUND_RECORD_VALIDATOR.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/PENDING_API_CONFIGURATION.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/POST_INSTALL_ACTIONS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/RENAME_CONNECTION_METHODS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/RETRIEVE_SECRETS_UDF.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/SYNC.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/TEST_CALLBACK.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/TEST_OAUTH_TOKEN_EXISTS.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/UPDATE_API_CONFIGURATION.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/UPDATE_GENERIC_SECRET_OBJECT_OLD.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/jinja_templates/UPDATE_NETWORK_RULE_OBJECT.sql.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/native_app_packaging.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/plugin_registration.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/plugin_template/icon.svg +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/plugin_template/plugin.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/plugin_template/plugin_development.ipynb +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/plugin_template/requirements.txt +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/config.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/constants.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/exceptions.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/secure_path.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/secure_utils.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/utils/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/api/utils/types.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/app/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/app/snow_connector.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/models.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package/__init__.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/package_utils.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/snowpark_shared.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/venv.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/plugins/snowpark/zipper.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/snowcli/cli/templates/environment.yml.jinja +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/streamlit/plugin_configuration.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/test_step_definitions.py +0 -0
- {omnata_plugin_devkit-0.10.15a100 → omnata_plugin_devkit-0.10.15a115}/src/omnata_plugin_devkit/utils.py +0 -0
|
@@ -48,6 +48,7 @@ def run(session,tunnel_type:str,other_secrets_name:str):
|
|
|
48
48
|
url = f'https://{ngrok_endpoint_host}/'
|
|
49
49
|
try:
|
|
50
50
|
response=http.request('GET',url)
|
|
51
|
+
return_data['mtls_success'] = True
|
|
51
52
|
except urllib3.exceptions.MaxRetryError as max_retry_error:
|
|
52
53
|
if isinstance(max_retry_error.reason, urllib3.exceptions.SSLError):
|
|
53
54
|
ssl_error:urllib3.exceptions.SSLError = max_retry_error.reason
|
|
@@ -25,8 +25,3 @@ configuration:
|
|
|
25
25
|
- type: DEBUG_LOGS
|
|
26
26
|
sharing: OPTIONAL
|
|
27
27
|
|
|
28
|
-
privileges:
|
|
29
|
-
- CREATE EXTERNAL ACCESS INTEGRATION:
|
|
30
|
-
description: "To connect to external application endpoints, as configured by the user (required)"
|
|
31
|
-
- CREATE SECURITY INTEGRATION:
|
|
32
|
-
description: "To create OAuth integration, as configured by the user (optional, only required if OAuth connectivity is needed)"
|
|
@@ -20,6 +20,7 @@ import sys
|
|
|
20
20
|
import typing
|
|
21
21
|
import zipfile
|
|
22
22
|
import copy
|
|
23
|
+
import uuid
|
|
23
24
|
from pathlib import Path
|
|
24
25
|
from typing import Any, Dict, List, Literal, Optional
|
|
25
26
|
|
|
@@ -470,7 +471,6 @@ class PluginUploader:
|
|
|
470
471
|
"PENDING_API_CONFIGURATION",
|
|
471
472
|
"TEST_CALLBACK",
|
|
472
473
|
"LIST_STAGES",
|
|
473
|
-
"CREATE_EXTERNAL_ACCESS_INTEGRATION",
|
|
474
474
|
"CREATE_GENERIC_SECRET_OBJECT",
|
|
475
475
|
"CREATE_GENERIC_SECRET_OBJECT_FROM_EXISTING",
|
|
476
476
|
"UPDATE_GENERIC_SECRET_OBJECT_OLD",
|
|
@@ -618,6 +618,28 @@ $${}$$;
|
|
|
618
618
|
FROM '/streamlit'
|
|
619
619
|
MAIN_FILE = '/plugin_configuration.py';"""
|
|
620
620
|
)
|
|
621
|
+
|
|
622
|
+
setup_script.write("""
|
|
623
|
+
WITH CREATE_TOKEN_FUNCTION AS PROCEDURE()
|
|
624
|
+
RETURNS BOOLEAN
|
|
625
|
+
LANGUAGE JAVASCRIPT
|
|
626
|
+
AS
|
|
627
|
+
$$
|
|
628
|
+
var uuidStatement = snowflake.createStatement({ sqlText:
|
|
629
|
+
`select UUID_STRING();`
|
|
630
|
+
});
|
|
631
|
+
var uuidResult = uuidStatement.execute();
|
|
632
|
+
uuidResult.next();
|
|
633
|
+
var uuid = uuidResult.getColumnValue(1);
|
|
634
|
+
var twoDollars='$' + '$';
|
|
635
|
+
snowflake.createStatement({ sqlText:
|
|
636
|
+
`create or replace function PLUGIN.TOKEN() returns string as ${twoDollars}'${uuid}'${twoDollars} `
|
|
637
|
+
}).execute();
|
|
638
|
+
return true;
|
|
639
|
+
$$
|
|
640
|
+
CALL CREATE_TOKEN_FUNCTION();
|
|
641
|
+
GRANT USAGE ON FUNCTION PLUGIN.TOKEN() TO application role OMNATA_MANAGEMENT;
|
|
642
|
+
""")
|
|
621
643
|
|
|
622
644
|
setup_script.write(
|
|
623
645
|
"""GRANT USAGE ON STREAMLIT UI."Plugin Configuration" TO application role OMNATA_MANAGEMENT;\n"""
|
|
@@ -652,6 +674,15 @@ MAIN_FILE = '/plugin_configuration.py';"""
|
|
|
652
674
|
}
|
|
653
675
|
)
|
|
654
676
|
manifest_file.write(content)
|
|
677
|
+
custom_manifest_privileges = os.path.join(plugin_directory, "custom_manifest_section.yml")
|
|
678
|
+
if os.path.exists(custom_manifest_privileges):
|
|
679
|
+
print("Adding manifest privileges from custom_manifest_section.yml")
|
|
680
|
+
with open(
|
|
681
|
+
custom_manifest_privileges, "r", encoding="utf-8"
|
|
682
|
+
) as custom_manifest_privileges_stream:
|
|
683
|
+
manifest_file.write(custom_manifest_privileges_stream.read() + "\n")
|
|
684
|
+
|
|
685
|
+
|
|
655
686
|
print("Uploading app manifest to stage")
|
|
656
687
|
self.session.sql(
|
|
657
688
|
(
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
create or replace procedure PLUGIN.CREATE_EXTERNAL_ACCESS_INTEGRATION(
|
|
2
|
-
EAI_NAME varchar,
|
|
3
|
-
SECRET_NAMES ARRAY,
|
|
4
|
-
NETWORK_RULE_NAMES ARRAY)
|
|
5
|
-
returns object
|
|
6
|
-
language javascript
|
|
7
|
-
COMMENT = $$
|
|
8
|
-
This procedure is deprecated, as the user must create the OAuth secrets themselves in order to be able to bind them correctly.
|
|
9
|
-
$$
|
|
10
|
-
execute as owner
|
|
11
|
-
as
|
|
12
|
-
$$
|
|
13
|
-
try{
|
|
14
|
-
if (SECRET_NAMES === null || SECRET_NAMES === undefined || SECRET_NAMES.length==0){
|
|
15
|
-
throw new Error('Secret names parameter must contain at least one secret');
|
|
16
|
-
}
|
|
17
|
-
if (NETWORK_RULE_NAMES === null || NETWORK_RULE_NAMES === undefined || NETWORK_RULE_NAMES.length==0){
|
|
18
|
-
throw new Error('Network rule names parameter must contain at least one secret');
|
|
19
|
-
}
|
|
20
|
-
var appsResults = snowflake.createStatement( {
|
|
21
|
-
sqlText: `select
|
|
22
|
-
APPLICATION_NAME,
|
|
23
|
-
EXTERNAL_ACCESS_INTEGRATIONS
|
|
24
|
-
from DATA.OMNATA_REGISTRATION`,
|
|
25
|
-
binds:[]
|
|
26
|
-
} ).execute();
|
|
27
|
-
if (!appsResults.next()) {
|
|
28
|
-
throw new Error('Plugin must be registered to a sync engine instance before calling this procedure');
|
|
29
|
-
}
|
|
30
|
-
const applicationName = appsResults.getColumnValue(1);
|
|
31
|
-
|
|
32
|
-
var bindings = [EAI_NAME].concat(NETWORK_RULE_NAMES).concat(SECRET_NAMES);
|
|
33
|
-
const secretNamesClauses = SECRET_NAMES.map(()=>{return 'IDENTIFIER(?)'}).join(',');
|
|
34
|
-
const networkRuleNamesClauses = NETWORK_RULE_NAMES.map(()=>{return 'IDENTIFIER(?)'}).join(',');
|
|
35
|
-
snowflake.createStatement( {
|
|
36
|
-
sqlText: `CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION IDENTIFIER(?)
|
|
37
|
-
ALLOWED_NETWORK_RULES = (${networkRuleNamesClauses})
|
|
38
|
-
ALLOWED_AUTHENTICATION_SECRETS = (${secretNamesClauses})
|
|
39
|
-
ENABLED = true`,
|
|
40
|
-
binds:bindings
|
|
41
|
-
} ).execute();
|
|
42
|
-
snowflake.createStatement( {
|
|
43
|
-
sqlText: `GRANT USAGE ON INTEGRATION IDENTIFIER(?) TO APPLICATION IDENTIFIER(?)`,
|
|
44
|
-
binds:[EAI_NAME, applicationName]
|
|
45
|
-
} ).execute();
|
|
46
|
-
return {
|
|
47
|
-
"success": true,
|
|
48
|
-
"data": null
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
catch(e){
|
|
52
|
-
return {
|
|
53
|
-
"success": false,
|
|
54
|
-
"error": `CREATE_EXTERNAL_ACCESS_INTEGRATION: ${String(e)}`
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
$$
|
|
58
|
-
;
|
|
59
|
-
|
|
60
|
-
grant usage on procedure PLUGIN.CREATE_EXTERNAL_ACCESS_INTEGRATION(VARCHAR,ARRAY,ARRAY)
|
|
61
|
-
to application role OMNATA_MANAGEMENT;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|