certora-cli-beta-mirror 7.28.0__py3-none-any.whl → 8.5.0__py3-none-any.whl
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.
- certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py +10 -3
- certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py +51 -16
- certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py +3 -0
- certora_cli/CertoraProver/castingInstrumenter.py +192 -0
- certora_cli/CertoraProver/certoraApp.py +52 -0
- certora_cli/CertoraProver/certoraBuild.py +694 -207
- certora_cli/CertoraProver/certoraBuildCacheManager.py +21 -17
- certora_cli/CertoraProver/certoraBuildDataClasses.py +8 -2
- certora_cli/CertoraProver/certoraBuildRust.py +88 -54
- certora_cli/CertoraProver/certoraBuildSui.py +112 -0
- certora_cli/CertoraProver/certoraCloudIO.py +97 -96
- certora_cli/CertoraProver/certoraCollectConfigurationLayout.py +230 -84
- certora_cli/CertoraProver/certoraCollectRunMetadata.py +52 -6
- certora_cli/CertoraProver/certoraCompilerParameters.py +11 -0
- certora_cli/CertoraProver/certoraConfigIO.py +43 -35
- certora_cli/CertoraProver/certoraContext.py +128 -54
- certora_cli/CertoraProver/certoraContextAttributes.py +415 -234
- certora_cli/CertoraProver/certoraContextValidator.py +152 -105
- certora_cli/CertoraProver/certoraContractFuncs.py +34 -1
- certora_cli/CertoraProver/certoraParseBuildScript.py +8 -10
- certora_cli/CertoraProver/certoraType.py +10 -1
- certora_cli/CertoraProver/certoraVerifyGenerator.py +22 -4
- certora_cli/CertoraProver/erc7201.py +45 -0
- certora_cli/CertoraProver/splitRules.py +23 -18
- certora_cli/CertoraProver/storageExtension.py +351 -0
- certora_cli/EquivalenceCheck/Eq_default.conf +0 -1
- certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -1
- certora_cli/EquivalenceCheck/equivCheck.py +2 -1
- certora_cli/Mutate/mutateApp.py +41 -22
- certora_cli/Mutate/mutateAttributes.py +11 -0
- certora_cli/Mutate/mutateValidate.py +42 -2
- certora_cli/Shared/certoraAttrUtil.py +21 -5
- certora_cli/Shared/certoraUtils.py +180 -60
- certora_cli/Shared/certoraValidateFuncs.py +68 -26
- certora_cli/Shared/proverCommon.py +308 -0
- certora_cli/certoraCVLFormatter.py +76 -0
- certora_cli/certoraConcord.py +39 -0
- certora_cli/certoraEVMProver.py +4 -3
- certora_cli/certoraRanger.py +39 -0
- certora_cli/certoraRun.py +83 -223
- certora_cli/certoraSolanaProver.py +40 -128
- certora_cli/certoraSorobanProver.py +59 -4
- certora_cli/certoraSuiProver.py +93 -0
- certora_cli_beta_mirror-8.5.0.dist-info/LICENSE +15 -0
- {certora_cli_beta_mirror-7.28.0.dist-info → certora_cli_beta_mirror-8.5.0.dist-info}/METADATA +21 -5
- certora_cli_beta_mirror-8.5.0.dist-info/RECORD +81 -0
- {certora_cli_beta_mirror-7.28.0.dist-info → certora_cli_beta_mirror-8.5.0.dist-info}/WHEEL +1 -1
- {certora_cli_beta_mirror-7.28.0.dist-info → certora_cli_beta_mirror-8.5.0.dist-info}/entry_points.txt +3 -0
- certora_jars/ASTExtraction.jar +0 -0
- certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -1
- certora_jars/Typechecker.jar +0 -0
- certora_cli_beta_mirror-7.28.0.dist-info/LICENSE +0 -22
- certora_cli_beta_mirror-7.28.0.dist-info/RECORD +0 -70
- {certora_cli_beta_mirror-7.28.0.dist-info → certora_cli_beta_mirror-8.5.0.dist-info}/top_level.txt +0 -0
|
@@ -16,21 +16,76 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
import sys
|
|
19
|
+
import logging
|
|
19
20
|
from pathlib import Path
|
|
20
21
|
|
|
21
22
|
scripts_dir_path = Path(__file__).parent.resolve() # containing directory
|
|
22
23
|
sys.path.insert(0, str(scripts_dir_path))
|
|
23
24
|
|
|
24
|
-
import
|
|
25
|
-
|
|
26
|
-
from typing import List, Optional
|
|
25
|
+
from typing import List, Optional, Dict
|
|
26
|
+
import CertoraProver.certoraApp as App
|
|
27
27
|
|
|
28
|
+
from CertoraProver.certoraBuildRust import build_rust_project
|
|
29
|
+
from Shared.proverCommon import (
|
|
30
|
+
build_context,
|
|
31
|
+
collect_and_dump_metadata,
|
|
32
|
+
collect_and_dump_config_layout,
|
|
33
|
+
ensure_version_compatibility,
|
|
34
|
+
run_local,
|
|
35
|
+
run_remote,
|
|
36
|
+
CertoraRunResult,
|
|
37
|
+
handle_exit,
|
|
38
|
+
catch_exits,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
run_logger = logging.getLogger("run")
|
|
28
42
|
|
|
29
43
|
def run_soroban_prover(args: List[str]) -> Optional[CertoraRunResult]:
|
|
30
|
-
|
|
44
|
+
"""
|
|
45
|
+
The main function that is responsible for the general flow of the script.
|
|
46
|
+
The general flow is:
|
|
47
|
+
1. Parse program arguments
|
|
48
|
+
2. Run the necessary steps (build/ cloud verification/ local verification)
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
context, logging_manager = build_context(args, App.SorobanApp)
|
|
52
|
+
timings: Dict[str, float] = {}
|
|
53
|
+
exit_code = 0 # The exit code of the script. 0 means success, any other number is an error.
|
|
54
|
+
return_value = None
|
|
55
|
+
|
|
56
|
+
# Collect and validate metadata and configuration layout
|
|
57
|
+
collect_and_dump_metadata(context)
|
|
58
|
+
collect_and_dump_config_layout(context)
|
|
59
|
+
|
|
60
|
+
# Version validation
|
|
61
|
+
ensure_version_compatibility(context)
|
|
62
|
+
|
|
63
|
+
# Build the application
|
|
64
|
+
build_rust_project(context, timings)
|
|
31
65
|
|
|
66
|
+
# Run verification if requested
|
|
67
|
+
if context.build_only:
|
|
68
|
+
return return_value
|
|
69
|
+
|
|
70
|
+
if context.local:
|
|
71
|
+
exit_code = run_local(context, timings)
|
|
72
|
+
else:
|
|
73
|
+
# Remove debug logger before running cloud verification
|
|
74
|
+
logging_manager.remove_debug_logger()
|
|
75
|
+
exit_code, return_value = run_remote(context, args, timings)
|
|
76
|
+
|
|
77
|
+
# Handle exit code
|
|
78
|
+
return handle_exit(exit_code, return_value)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
@catch_exits
|
|
32
82
|
def entry_point() -> None:
|
|
83
|
+
"""
|
|
84
|
+
This function is the entry point of the certora_cli customer-facing package, as well as this script.
|
|
85
|
+
It is important this function gets no arguments!
|
|
86
|
+
"""
|
|
33
87
|
run_soroban_prover(sys.argv[1:])
|
|
34
88
|
|
|
89
|
+
|
|
35
90
|
if __name__ == '__main__':
|
|
36
91
|
entry_point()
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# The Certora Prover
|
|
3
|
+
# Copyright (C) 2025 Certora Ltd.
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, version 3 of the License.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
import sys
|
|
19
|
+
import logging
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
|
|
22
|
+
scripts_dir_path = Path(__file__).parent.resolve() # containing directory
|
|
23
|
+
sys.path.insert(0, str(scripts_dir_path))
|
|
24
|
+
|
|
25
|
+
from typing import List, Optional, Dict
|
|
26
|
+
|
|
27
|
+
import CertoraProver.certoraApp as App
|
|
28
|
+
|
|
29
|
+
from CertoraProver.certoraBuildSui import build_sui_project
|
|
30
|
+
from Shared.proverCommon import (
|
|
31
|
+
build_context,
|
|
32
|
+
collect_and_dump_metadata,
|
|
33
|
+
collect_and_dump_config_layout,
|
|
34
|
+
ensure_version_compatibility,
|
|
35
|
+
run_local,
|
|
36
|
+
run_remote,
|
|
37
|
+
CertoraRunResult,
|
|
38
|
+
handle_exit,
|
|
39
|
+
catch_exits,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
run_logger = logging.getLogger("run")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def run_sui_prover(args: List[str]) -> Optional[CertoraRunResult]:
|
|
46
|
+
"""
|
|
47
|
+
The main function that is responsible for the general flow of the script.
|
|
48
|
+
The general flow is:
|
|
49
|
+
1. Parse program arguments
|
|
50
|
+
2. Run the necessary steps (build/ cloud verification/ local verification)
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
context, logging_manager = build_context(args, App.SuiApp)
|
|
54
|
+
timings: Dict[str, float] = {}
|
|
55
|
+
exit_code = 0 # The exit code of the script. 0 means success, any other number is an error.
|
|
56
|
+
return_value = None
|
|
57
|
+
|
|
58
|
+
# Collect and validate metadata and configuration layout
|
|
59
|
+
collect_and_dump_metadata(context)
|
|
60
|
+
collect_and_dump_config_layout(context)
|
|
61
|
+
|
|
62
|
+
# Version validation
|
|
63
|
+
ensure_version_compatibility(context)
|
|
64
|
+
|
|
65
|
+
# Build the application
|
|
66
|
+
build_sui_project(context, timings)
|
|
67
|
+
|
|
68
|
+
# Run verification if requested
|
|
69
|
+
if context.build_only:
|
|
70
|
+
return return_value
|
|
71
|
+
|
|
72
|
+
if context.local:
|
|
73
|
+
exit_code = run_local(context, timings)
|
|
74
|
+
else:
|
|
75
|
+
# Remove debug logger before running cloud verification
|
|
76
|
+
logging_manager.remove_debug_logger()
|
|
77
|
+
exit_code, return_value = run_remote(context, args, timings)
|
|
78
|
+
|
|
79
|
+
# Handle exit code
|
|
80
|
+
return handle_exit(exit_code, return_value)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@catch_exits
|
|
84
|
+
def entry_point() -> None:
|
|
85
|
+
"""
|
|
86
|
+
This function is the entry point of the certora_cli customer-facing package, as well as this script.
|
|
87
|
+
It is important this function gets no arguments!
|
|
88
|
+
"""
|
|
89
|
+
run_sui_prover(sys.argv[1:])
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
if __name__ == '__main__':
|
|
93
|
+
entry_point()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
The Certora Prover
|
|
3
|
+
Copyright (C) 2025 Certora Ltd.
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify
|
|
6
|
+
it under the terms of the GNU General Public License as published by
|
|
7
|
+
the Free Software Foundation, version 3 of the License.
|
|
8
|
+
|
|
9
|
+
This program is distributed in the hope that it will be useful,
|
|
10
|
+
but WITHOUT ANY WARRANTY, without even the implied warranty of
|
|
11
|
+
MERCHANTABILITY or FITNESS FOR a PARTICULAR PURPOSE. See the
|
|
12
|
+
GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
You should have received a copy of the GNU General Public License
|
|
15
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
{certora_cli_beta_mirror-7.28.0.dist-info → certora_cli_beta_mirror-8.5.0.dist-info}/METADATA
RENAMED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: certora-cli-beta-mirror
|
|
3
|
-
Version:
|
|
3
|
+
Version: 8.5.0
|
|
4
4
|
Summary: Runner for the Certora Prover
|
|
5
5
|
Home-page: https://pypi.org/project/certora-cli-beta-mirror
|
|
6
6
|
Author: Certora
|
|
7
7
|
Author-email: support@certora.com
|
|
8
|
+
License: GPL-3.0-only
|
|
9
|
+
Project-URL: Documentation, https://docs.certora.com/en/latest/
|
|
10
|
+
Project-URL: Source, https://github.com/Certora/CertoraProver
|
|
8
11
|
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: License :: OSI Approved ::
|
|
12
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
10
13
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.
|
|
14
|
+
Requires-Python: >=3.9
|
|
12
15
|
Description-Content-Type: text/markdown
|
|
13
16
|
License-File: LICENSE
|
|
14
17
|
Requires-Dist: click
|
|
@@ -22,5 +25,18 @@ Requires-Dist: tqdm
|
|
|
22
25
|
Requires-Dist: StrEnum
|
|
23
26
|
Requires-Dist: universalmutator
|
|
24
27
|
Requires-Dist: jinja2
|
|
28
|
+
Requires-Dist: wcmatch
|
|
29
|
+
Requires-Dist: typing_extensions
|
|
30
|
+
Dynamic: author
|
|
31
|
+
Dynamic: author-email
|
|
32
|
+
Dynamic: classifier
|
|
33
|
+
Dynamic: description
|
|
34
|
+
Dynamic: description-content-type
|
|
35
|
+
Dynamic: home-page
|
|
36
|
+
Dynamic: license
|
|
37
|
+
Dynamic: project-url
|
|
38
|
+
Dynamic: requires-dist
|
|
39
|
+
Dynamic: requires-python
|
|
40
|
+
Dynamic: summary
|
|
25
41
|
|
|
26
|
-
Commit
|
|
42
|
+
Commit d143e0e. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
certora_bins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
certora_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
certora_cli/certoraCVLFormatter.py,sha256=P2S5Lk4R-Xg09ex0EYXTqlsd8FgY226n_pQImWcDPKk,2767
|
|
4
|
+
certora_cli/certoraConcord.py,sha256=H6-Ft-kZvB6BNwr8OgCsfZN2vxPw9_mYfCSO_1-FKLk,1292
|
|
5
|
+
certora_cli/certoraEVMProver.py,sha256=AH8ZeWXAs7wK6nNKFANCt6seLf9EaaFXtfpjc3xdIfc,1243
|
|
6
|
+
certora_cli/certoraEqCheck.py,sha256=qfZq7bpU1kbAIezC66W61VfKNZz7Uywg2Ygup62qYeo,1069
|
|
7
|
+
certora_cli/certoraMutate.py,sha256=XhFHyNVP_sk-3XkY6AAV5fVliEFAVRq-JeDGsqE5IQQ,3333
|
|
8
|
+
certora_cli/certoraRanger.py,sha256=thJ4EKo-MFHklCk-7zJADZ-9SO6eCg1AFv88-QssLj0,1289
|
|
9
|
+
certora_cli/certoraRun.py,sha256=c3ySo9attnuMdrnWxUNKLu4PgKsqgoYrUgJnL0Ej3Qs,6651
|
|
10
|
+
certora_cli/certoraSolanaProver.py,sha256=1R1YnGHCofb05GqFgpxRh3ZmHkmwMm1hPM7rfeiEu7o,3250
|
|
11
|
+
certora_cli/certoraSorobanProver.py,sha256=SYJKz5Sw-N0bJrSa1njRCE53R9_PMz7IWLhfamOjisk,2840
|
|
12
|
+
certora_cli/certoraSuiProver.py,sha256=gRs-iihB35ZSEIQ5-hJN-wLgrHZlcfmpk76Wr6vza74,2827
|
|
13
|
+
certora_cli/rustMutator.py,sha256=6AvOGU8Ijz89zW_ZJCWlfXkeobJsk7EsqZhK7Eqwn-Y,14544
|
|
14
|
+
certora_cli/CertoraProver/__init__.py,sha256=QHNr-PJQAoyuPgTkO7gg23GRchiWSXglWNG7yLSQZvs,849
|
|
15
|
+
certora_cli/CertoraProver/castingInstrumenter.py,sha256=4FDjQjnN9s8I3B9J-_G9rug9Jf3LnWnAuRngr50oTH4,7898
|
|
16
|
+
certora_cli/CertoraProver/certoraApp.py,sha256=RKJ2Krb_CzbRUvczbdE6FhUDrFcvrR8j0JS8MNWXX7s,1469
|
|
17
|
+
certora_cli/CertoraProver/certoraBuild.py,sha256=-4cBWcMj3dU9cc2BzJ7AT3TzY1tDYGTKaLrcvxUOW6Y,231453
|
|
18
|
+
certora_cli/CertoraProver/certoraBuildCacheManager.py,sha256=DnVd7w92xjmg0DIrMgoJnCvaU0yCz7ySy0M4RiHEXEM,13648
|
|
19
|
+
certora_cli/CertoraProver/certoraBuildDataClasses.py,sha256=BKOjO0yBUWA26cK_VO_lczXrOD7VWC8egQiXY4jGpmk,14914
|
|
20
|
+
certora_cli/CertoraProver/certoraBuildRust.py,sha256=ZPbNp4ttRmzcKhFsgHSiHDRExNPaLOzgxTRqu23o1D0,6061
|
|
21
|
+
certora_cli/CertoraProver/certoraBuildSui.py,sha256=zMXD2XnC4oqRDzPcBvSZmVquL3UG5paBZkfUT3JPbYY,4180
|
|
22
|
+
certora_cli/CertoraProver/certoraCloudIO.py,sha256=ElRVD-c69aSURtgobuxbEfg6rPzQDSTqtTZJmeT_SYU,54430
|
|
23
|
+
certora_cli/CertoraProver/certoraCollectConfigurationLayout.py,sha256=Rln6LsqMp-u0H2fAFulTLAn7GW-j3ox2XZSz0ghdjk0,14116
|
|
24
|
+
certora_cli/CertoraProver/certoraCollectRunMetadata.py,sha256=SonKgq2l6_8o6xySbinEinEd32Ufrk3VB0Roq-CmwoM,13718
|
|
25
|
+
certora_cli/CertoraProver/certoraCompilerParameters.py,sha256=v-MIt4sDJSQ7vpEFmCt9XBkKBhdBbZuZA4PWNErJwcU,1807
|
|
26
|
+
certora_cli/CertoraProver/certoraConfigIO.py,sha256=-1EhJYsiheYvyCgOOWrRCQBjqtqNXrpMKJYRq5cKJ0Y,8171
|
|
27
|
+
certora_cli/CertoraProver/certoraContext.py,sha256=bBbLPet5si6jFEdL1TBORN-HCiJGQK7hD6OQZ_ODmFY,28878
|
|
28
|
+
certora_cli/CertoraProver/certoraContextAttributes.py,sha256=P1_wgeodSY3-n8c79E64whVSJ6y52pQGvxtvPc4le38,72244
|
|
29
|
+
certora_cli/CertoraProver/certoraContextClass.py,sha256=d7HDqM72K7YnswR7kEcAHGwkFNrTqRz5-_0m7cl2Mso,900
|
|
30
|
+
certora_cli/CertoraProver/certoraContextValidator.py,sha256=Ja5XrVT1KY4XOG_tQsnUXq5wCifXpEdUUJba3073NaI,46366
|
|
31
|
+
certora_cli/CertoraProver/certoraContractFuncs.py,sha256=IKe4xbDh0yFoYVCuLeAxnGg9h59rQCla3Qpy0GwS3HE,8236
|
|
32
|
+
certora_cli/CertoraProver/certoraExtensionInfo.py,sha256=YlShzdoqJQgXXj3r0TJ3fir1KntIR99Rk8JN5qii2lk,2026
|
|
33
|
+
certora_cli/CertoraProver/certoraJobList.py,sha256=FBIYgJ60I0Ok7vchfTbcuJJbiXgnfAhrONoVeZoHti4,11464
|
|
34
|
+
certora_cli/CertoraProver/certoraMiniSpecParser.py,sha256=NjjMwf5Rav3YWpoOJh4PZ-QOS8exC2cg4yIBSbZA6l0,9660
|
|
35
|
+
certora_cli/CertoraProver/certoraNodeFilters.py,sha256=5Uk2mixZKeis_JVd3HkLgoEVklkAYBXAZiNHRlXOIfY,2830
|
|
36
|
+
certora_cli/CertoraProver/certoraParseBuildScript.py,sha256=l7KQA1poEjmbmuYbMskz0jOQg6cW0lM3vk5ruAGPjPI,4863
|
|
37
|
+
certora_cli/CertoraProver/certoraProjectScanner.py,sha256=jT7FeWzcy8o83LrZRwsg_L4x6im6Fm_0LZFKVbKr3Jk,6862
|
|
38
|
+
certora_cli/CertoraProver/certoraSourceFinders.py,sha256=qwJtwrQq3NUNYmdmn1UmANN4lmJFIUh4M-St2x1FJ2Y,19038
|
|
39
|
+
certora_cli/CertoraProver/certoraType.py,sha256=inwaLkMVwtJnwkyQhDJs-wRxoyytu2Xa_BJ5MdGlZqY,29737
|
|
40
|
+
certora_cli/CertoraProver/certoraVerifyGenerator.py,sha256=YMuzGj2RNOnADOx8UnV2ys1ptw_-2mermgC9ZLMWceo,11052
|
|
41
|
+
certora_cli/CertoraProver/erc7201.py,sha256=BME5kBZsDx6lgqLn7EE91I1cEOZtsnZ8BlRVF62eEBE,1660
|
|
42
|
+
certora_cli/CertoraProver/splitRules.py,sha256=dNhy05ShB_-rWYTnJH5m-Xc5A4HGStAvwLRs1BTu1GA,7627
|
|
43
|
+
certora_cli/CertoraProver/storageExtension.py,sha256=nrCrbH8ne-yCYSDFzh3J9A7Q6h96WxhEfLbfxGSUCSc,14363
|
|
44
|
+
certora_cli/CertoraProver/Compiler/CompilerCollector.py,sha256=cr-PIl7LY9VfNs4s4H3-EnSnomPiCgXudfwP9-KenMk,6740
|
|
45
|
+
certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py,sha256=drMPTUz9cabxqIu2ngGp0x1ZZ_Jqqn-Db2qql97PTaw,8544
|
|
46
|
+
certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py,sha256=7nAY2FLMUlGJn4f_YoZMqpa3rf7THqhJVjLwTaChcBc,5027
|
|
47
|
+
certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py,sha256=UasYWyu8Of6R84vXsqRNGpscYcFQghmSIY_dyaAWDYA,1350
|
|
48
|
+
certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py,sha256=kPzB_qbSbIFNmJd2cQ89ULwvgiGs7OdI9N_w9raaM4Y,69981
|
|
49
|
+
certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py,sha256=ZTyWIMtaf4gLPRM3_jjq58Gb0r5LE_giajz6sssIi0Y,5299
|
|
50
|
+
certora_cli/CertoraProver/Compiler/__init__.py,sha256=tEFAmNyx9WL0kzpp_-4s7b6pLvxHmBWz6pQAq0yeROM,789
|
|
51
|
+
certora_cli/EquivalenceCheck/Eq_default.conf,sha256=J-tMFzIuQa1NcklOh-wv2bpnikfAxFogpRFOl3qoSwM,164
|
|
52
|
+
certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec,sha256=HC3Zhpp9ePV10ClZE09Ah7h84O-BTNIUH6w0aA-qIOQ,2286
|
|
53
|
+
certora_cli/EquivalenceCheck/Eq_mc_template.spec,sha256=pbRhwqw0a_KHQ6W3biJeGS9otNJCnw7gPo1Fb6ROwik,2633
|
|
54
|
+
certora_cli/EquivalenceCheck/Eq_sanity.conf,sha256=BuBI5YNg25b--iQxpNxBzb4v-q-HByObCx7R5Uy1jRw,161
|
|
55
|
+
certora_cli/EquivalenceCheck/Eq_template.spec,sha256=YGaG5KxSOhelDiBd1oxDnVC8VhPl6coaxHiY4lXVf6o,823
|
|
56
|
+
certora_cli/EquivalenceCheck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
+
certora_cli/EquivalenceCheck/equivCheck.py,sha256=nfKm1zyboMui_eOGwXZCAC9LkcmW67teUEx8YEANCyY,20671
|
|
58
|
+
certora_cli/EquivalenceCheck/sanity.spec,sha256=tWmE9z2Sq3_SWaqKDRQaNajRrw94maUrirvoUmX89LE,103
|
|
59
|
+
certora_cli/Mutate/__init__.py,sha256=QHNr-PJQAoyuPgTkO7gg23GRchiWSXglWNG7yLSQZvs,849
|
|
60
|
+
certora_cli/Mutate/mutateApp.py,sha256=UY4TWn9f318b2upVAFUL0cqcgzlyTDZ5XeNW3MjofkA,88701
|
|
61
|
+
certora_cli/Mutate/mutateAttributes.py,sha256=2onGaPmztwmHg5V_X7BUG4HcQCThhqYzGYKBy695Izc,10587
|
|
62
|
+
certora_cli/Mutate/mutateConstants.py,sha256=LRrz3wMM8WpPYSshkc-PLYqT0nexcWQeBNsehip-LOE,3945
|
|
63
|
+
certora_cli/Mutate/mutateUtil.py,sha256=B7MCIFtZBetjR4MMxU6F5ikYsaot1wTG7XYMjgVXl4k,2287
|
|
64
|
+
certora_cli/Mutate/mutateValidate.py,sha256=6DRYfnE-HCMvMxbb0v1dx2BTSd-x8YeFRVp35KplVPc,9760
|
|
65
|
+
certora_cli/Shared/ExpectedComparator.py,sha256=eyRR-jni4WJoa6j2TK2lnZ89Tyb8U99wT2PNdu4se8w,18457
|
|
66
|
+
certora_cli/Shared/__init__.py,sha256=s0dhvolFtsS4sRNzPVhC_rlw8mm194rCZ0WhOxInY40,1025
|
|
67
|
+
certora_cli/Shared/certoraAttrUtil.py,sha256=Nw8ban5Axp6c6dT-KJfCD9i9tKnGk1DbvRDDNH3--DU,8574
|
|
68
|
+
certora_cli/Shared/certoraLogging.py,sha256=cV2UQMhQ5j8crGXgeq9CEamI-Lk4HgdiA3HCrP-kSR4,14013
|
|
69
|
+
certora_cli/Shared/certoraUtils.py,sha256=lHd7Da2BmpFAMUoVpdmg5IICsCEIX9qCuD7Ts5QaLpQ,59556
|
|
70
|
+
certora_cli/Shared/certoraValidateFuncs.py,sha256=gCM-YP0Tpngpasd2AWxhu90UNz1wtls3WqJYp18n_Q8,43503
|
|
71
|
+
certora_cli/Shared/proverCommon.py,sha256=DUB-uEKjOkZ-8qil6xukPqfTynpigXW-gcrm0_kRUZY,11383
|
|
72
|
+
certora_jars/ASTExtraction.jar,sha256=rBQRW5FNQvTwMCgKoqGC57e5Z4Nr8bfudvGrGLlTl18,21985312
|
|
73
|
+
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=ppx9Vemc6qNycgG68gPOhJOtdkWdvoP3quVgINQz7oE,143
|
|
74
|
+
certora_jars/Typechecker.jar,sha256=qqtuhN-2TnyY6VjuKJ2ELunS9lnbDecUd8GXNWGZSd0,21947424
|
|
75
|
+
certora_jars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
|
+
certora_cli_beta_mirror-8.5.0.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
|
|
77
|
+
certora_cli_beta_mirror-8.5.0.dist-info/METADATA,sha256=R7o6xR4P3zsUcfbMsNJXf7hSIcUgEJI6KwV_6fJNmGo,1286
|
|
78
|
+
certora_cli_beta_mirror-8.5.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
|
79
|
+
certora_cli_beta_mirror-8.5.0.dist-info/entry_points.txt,sha256=YXGQmR4tGdYD9lLdG_TEJkmVNrRauCtCDE88HwvO2Jo,569
|
|
80
|
+
certora_cli_beta_mirror-8.5.0.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
|
|
81
|
+
certora_cli_beta_mirror-8.5.0.dist-info/RECORD,,
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
[console_scripts]
|
|
2
|
+
certoraCVLFormatter = certora_cli.certoraCVLFormatter:entry_point
|
|
2
3
|
certoraEVMProver = certora_cli.certoraEVMProver:entry_point
|
|
3
4
|
certoraEqCheck = certora_cli.certoraEqCheck:equiv_check_entry_point
|
|
4
5
|
certoraMutate = certora_cli.certoraMutate:mutate_entry_point
|
|
6
|
+
certoraRanger = certora_cli.certoraRanger:entry_point
|
|
5
7
|
certoraRun = certora_cli.certoraRun:entry_point
|
|
6
8
|
certoraSolanaProver = certora_cli.certoraSolanaProver:entry_point
|
|
7
9
|
certoraSorobanProver = certora_cli.certoraSorobanProver:entry_point
|
|
10
|
+
certoraSuiProver = certora_cli.certoraSuiProver:entry_point
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "certora-cli-beta-mirror", "tag": "
|
|
1
|
+
{"name": "certora-cli-beta-mirror", "tag": "8.5.0", "branch": "", "commit": "d143e0e", "timestamp": "20251116.12.6.675546", "version": "8.5.0"}
|
certora_jars/Typechecker.jar
CHANGED
|
Binary file
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
MIT License
|
|
3
|
-
|
|
4
|
-
Copyright (c) 2025 Certora
|
|
5
|
-
|
|
6
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
-
in the Software without restriction, including without limitation the rights
|
|
9
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
-
furnished to do so, subject to the following conditions:
|
|
12
|
-
|
|
13
|
-
The above copyright notice and this permission notice shall be included in all
|
|
14
|
-
copies or substantial portions of the Software.
|
|
15
|
-
|
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
-
SOFTWARE.
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
certora_bins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
certora_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
certora_cli/certoraEVMProver.py,sha256=12qxurzLtv0sS0NbHYY8yVlE0C7hvXRep2UyA0rCXyQ,1243
|
|
4
|
-
certora_cli/certoraEqCheck.py,sha256=qfZq7bpU1kbAIezC66W61VfKNZz7Uywg2Ygup62qYeo,1069
|
|
5
|
-
certora_cli/certoraMutate.py,sha256=XhFHyNVP_sk-3XkY6AAV5fVliEFAVRq-JeDGsqE5IQQ,3333
|
|
6
|
-
certora_cli/certoraRun.py,sha256=yShug0KoLE4mdplMTFLNzY_Q8vPkEVyR_E6aXZe7_O0,13983
|
|
7
|
-
certora_cli/certoraSolanaProver.py,sha256=6KbhUaEPBngPZK3rsw8ZNHSKCcdSeN48nE94xuBUIdI,7479
|
|
8
|
-
certora_cli/certoraSorobanProver.py,sha256=fV_t16_ED3xom_0BEeJh2F-RIcPFdVjsQ_j-UaCCZjM,1267
|
|
9
|
-
certora_cli/rustMutator.py,sha256=6AvOGU8Ijz89zW_ZJCWlfXkeobJsk7EsqZhK7Eqwn-Y,14544
|
|
10
|
-
certora_cli/CertoraProver/__init__.py,sha256=QHNr-PJQAoyuPgTkO7gg23GRchiWSXglWNG7yLSQZvs,849
|
|
11
|
-
certora_cli/CertoraProver/certoraBuild.py,sha256=K8KHx7OqARz3efW5QJL1t_X5LNiYQNoGlQqF3iyFLfo,205029
|
|
12
|
-
certora_cli/CertoraProver/certoraBuildCacheManager.py,sha256=dzXC8A-V9gr1GGsPYglQLlFLoR2Tk4dTJuMHaxXBfgw,13257
|
|
13
|
-
certora_cli/CertoraProver/certoraBuildDataClasses.py,sha256=0kgCvJhg2d7JrVNQxWNYGhbImTNojEqa-G3pucneFKA,14552
|
|
14
|
-
certora_cli/CertoraProver/certoraBuildRust.py,sha256=pxsUd5WYe_w1uwhk8uAsNMxtSzjQCQuWNNxPIZRPHvc,5218
|
|
15
|
-
certora_cli/CertoraProver/certoraCloudIO.py,sha256=ovTe8twtfxgZxjOZn5to8v9e10fK0dj-roQaSQ-bZFU,54713
|
|
16
|
-
certora_cli/CertoraProver/certoraCollectConfigurationLayout.py,sha256=OPRGm8IvBns_SD6EmDuJ16BIiCG_7O80dMrBQ3WSNUA,9568
|
|
17
|
-
certora_cli/CertoraProver/certoraCollectRunMetadata.py,sha256=tKx56neJoHiVAsxjSHaMjVsWRM4lYJe16PgpSO-JrrM,11684
|
|
18
|
-
certora_cli/CertoraProver/certoraCompilerParameters.py,sha256=r35y03IRwWIoz1GCNC7PuW3n8JPz9J1NGwhwUYKdYtI,1452
|
|
19
|
-
certora_cli/CertoraProver/certoraConfigIO.py,sha256=lxdtoV6Fiu2nbjujV8wDQmDVx3FwXTZ_El5--oit6iI,7484
|
|
20
|
-
certora_cli/CertoraProver/certoraContext.py,sha256=K-cCht-oVvi0vI4UWRhUF9yQdIvsyZgxNtv43S5KH_Q,25284
|
|
21
|
-
certora_cli/CertoraProver/certoraContextAttributes.py,sha256=GCYK_tWVrOl1y7Mn3EcPKMnnGb89qkqcw2va3Q_b2ZA,64410
|
|
22
|
-
certora_cli/CertoraProver/certoraContextClass.py,sha256=d7HDqM72K7YnswR7kEcAHGwkFNrTqRz5-_0m7cl2Mso,900
|
|
23
|
-
certora_cli/CertoraProver/certoraContextValidator.py,sha256=Vrq50PQ0NzQUucsLR96QIoCNEJ7uuU0WW_x8O0LUfys,43953
|
|
24
|
-
certora_cli/CertoraProver/certoraContractFuncs.py,sha256=ipSwge5QQzp8qhUavY44bZ-eCR6szK_HWwSIWqQyuR0,6921
|
|
25
|
-
certora_cli/CertoraProver/certoraExtensionInfo.py,sha256=YlShzdoqJQgXXj3r0TJ3fir1KntIR99Rk8JN5qii2lk,2026
|
|
26
|
-
certora_cli/CertoraProver/certoraJobList.py,sha256=FBIYgJ60I0Ok7vchfTbcuJJbiXgnfAhrONoVeZoHti4,11464
|
|
27
|
-
certora_cli/CertoraProver/certoraMiniSpecParser.py,sha256=NjjMwf5Rav3YWpoOJh4PZ-QOS8exC2cg4yIBSbZA6l0,9660
|
|
28
|
-
certora_cli/CertoraProver/certoraNodeFilters.py,sha256=5Uk2mixZKeis_JVd3HkLgoEVklkAYBXAZiNHRlXOIfY,2830
|
|
29
|
-
certora_cli/CertoraProver/certoraParseBuildScript.py,sha256=VJARWSLN6QVeBnQasvD9SdsS_V-S2pYitRFTu775Wyc,4908
|
|
30
|
-
certora_cli/CertoraProver/certoraProjectScanner.py,sha256=jT7FeWzcy8o83LrZRwsg_L4x6im6Fm_0LZFKVbKr3Jk,6862
|
|
31
|
-
certora_cli/CertoraProver/certoraSourceFinders.py,sha256=qwJtwrQq3NUNYmdmn1UmANN4lmJFIUh4M-St2x1FJ2Y,19038
|
|
32
|
-
certora_cli/CertoraProver/certoraType.py,sha256=wD-Sr3xk_dJGtbvw33oIGu_lf15NCZuKWjUb4HlVcUM,29318
|
|
33
|
-
certora_cli/CertoraProver/certoraVerifyGenerator.py,sha256=HZSFbcOO5NReOsJXDxx9o7xARhwbAdP9CYDFEQSTMcY,10146
|
|
34
|
-
certora_cli/CertoraProver/splitRules.py,sha256=PXLhrIRDpYoNsVm1lgNx87SP4Se_0LbRYP5QRgqIZrw,7477
|
|
35
|
-
certora_cli/CertoraProver/Compiler/CompilerCollector.py,sha256=cr-PIl7LY9VfNs4s4H3-EnSnomPiCgXudfwP9-KenMk,6740
|
|
36
|
-
certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py,sha256=L-LAH0UU7gB7wYvCcXrwdtLGpBI8MX3rPts0ufQ-X9s,8157
|
|
37
|
-
certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py,sha256=7nAY2FLMUlGJn4f_YoZMqpa3rf7THqhJVjLwTaChcBc,5027
|
|
38
|
-
certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py,sha256=UasYWyu8Of6R84vXsqRNGpscYcFQghmSIY_dyaAWDYA,1350
|
|
39
|
-
certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py,sha256=WXoyZ_OZaQeudzT3dTOjuQSKSRZBAYoeuGJHRrwhFNw,68460
|
|
40
|
-
certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py,sha256=El4WYJZVp3DpXQMZ53yVDPKOWPda5oLs3yD1qhb7dAE,5177
|
|
41
|
-
certora_cli/CertoraProver/Compiler/__init__.py,sha256=tEFAmNyx9WL0kzpp_-4s7b6pLvxHmBWz6pQAq0yeROM,789
|
|
42
|
-
certora_cli/EquivalenceCheck/Eq_default.conf,sha256=p9b8_cPnU41dVBrd8ry16H4x75TNp16HdJdmQeMuVxw,186
|
|
43
|
-
certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec,sha256=HC3Zhpp9ePV10ClZE09Ah7h84O-BTNIUH6w0aA-qIOQ,2286
|
|
44
|
-
certora_cli/EquivalenceCheck/Eq_mc_template.spec,sha256=pbRhwqw0a_KHQ6W3biJeGS9otNJCnw7gPo1Fb6ROwik,2633
|
|
45
|
-
certora_cli/EquivalenceCheck/Eq_sanity.conf,sha256=j1Rm9dXNiQT4ULc3jmn4OxhsG1UgiTyoGsnrIHMQDBk,183
|
|
46
|
-
certora_cli/EquivalenceCheck/Eq_template.spec,sha256=YGaG5KxSOhelDiBd1oxDnVC8VhPl6coaxHiY4lXVf6o,823
|
|
47
|
-
certora_cli/EquivalenceCheck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
|
-
certora_cli/EquivalenceCheck/equivCheck.py,sha256=D3TA1DRppaXpEcVW_smqMQzeUle0jPu0wIXXEd5un0U,20620
|
|
49
|
-
certora_cli/EquivalenceCheck/sanity.spec,sha256=tWmE9z2Sq3_SWaqKDRQaNajRrw94maUrirvoUmX89LE,103
|
|
50
|
-
certora_cli/Mutate/__init__.py,sha256=QHNr-PJQAoyuPgTkO7gg23GRchiWSXglWNG7yLSQZvs,849
|
|
51
|
-
certora_cli/Mutate/mutateApp.py,sha256=hWFOXIBSI9P8L5n2ShYyh-VZc8j4OLk6y5yHNSaxxPA,87613
|
|
52
|
-
certora_cli/Mutate/mutateAttributes.py,sha256=brsoisPowxpxQxN_-y0NDvsv8feoHONhtlOayXaLDdk,10092
|
|
53
|
-
certora_cli/Mutate/mutateConstants.py,sha256=LRrz3wMM8WpPYSshkc-PLYqT0nexcWQeBNsehip-LOE,3945
|
|
54
|
-
certora_cli/Mutate/mutateUtil.py,sha256=B7MCIFtZBetjR4MMxU6F5ikYsaot1wTG7XYMjgVXl4k,2287
|
|
55
|
-
certora_cli/Mutate/mutateValidate.py,sha256=9mWzR1zd9N_k78IH9MkvnTzUWb1xPdW086b2-lpi4mQ,7437
|
|
56
|
-
certora_cli/Shared/ExpectedComparator.py,sha256=eyRR-jni4WJoa6j2TK2lnZ89Tyb8U99wT2PNdu4se8w,18457
|
|
57
|
-
certora_cli/Shared/__init__.py,sha256=s0dhvolFtsS4sRNzPVhC_rlw8mm194rCZ0WhOxInY40,1025
|
|
58
|
-
certora_cli/Shared/certoraAttrUtil.py,sha256=wORBPLKJzRmiHaTkPYfFYxS2iccbqT3T3QJ9suTzyRo,8070
|
|
59
|
-
certora_cli/Shared/certoraLogging.py,sha256=cV2UQMhQ5j8crGXgeq9CEamI-Lk4HgdiA3HCrP-kSR4,14013
|
|
60
|
-
certora_cli/Shared/certoraUtils.py,sha256=1_-P8rG_ed3aH1lvDx8jcFtyDvln3PAKuPaKYWBK9U4,54871
|
|
61
|
-
certora_cli/Shared/certoraValidateFuncs.py,sha256=M3eSr_5vxhdavTA_9NWYhH8SKR-PMyqYH8JzOTl7vwU,41527
|
|
62
|
-
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=bvSyQhDNDC36lGbIJZJccOWUEw8ae3jNCDjz77ZNEwU,146
|
|
63
|
-
certora_jars/Typechecker.jar,sha256=ltNw9oSXH6gODnpico36szDxqwLG-fR3HRxsaWeF1X8,16885722
|
|
64
|
-
certora_jars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
certora_cli_beta_mirror-7.28.0.dist-info/LICENSE,sha256=a-Nl3_IeBWTgtndKszDEK9NUQB0gMGVdlE18EMpQxpQ,1065
|
|
66
|
-
certora_cli_beta_mirror-7.28.0.dist-info/METADATA,sha256=-KXkefNrqjNfRCv7Wc0luiGmbHLlDwMDdZbJzOQTcoU,822
|
|
67
|
-
certora_cli_beta_mirror-7.28.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
68
|
-
certora_cli_beta_mirror-7.28.0.dist-info/entry_points.txt,sha256=x2dyit80wAtF72k5CQj9F5lnWZEmP9ioseqvrEGWyFc,389
|
|
69
|
-
certora_cli_beta_mirror-7.28.0.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
|
|
70
|
-
certora_cli_beta_mirror-7.28.0.dist-info/RECORD,,
|
{certora_cli_beta_mirror-7.28.0.dist-info → certora_cli_beta_mirror-8.5.0.dist-info}/top_level.txt
RENAMED
|
File without changes
|