chriseth
|
2e274a0b26
|
Add commandline test to show debug strings.
|
2021-05-03 18:28:39 +02:00 |
|
Leo Alt
|
1642c10f6e
|
Fix ICE in free functions
|
2021-05-03 10:57:11 +02:00 |
|
chriseth
|
996f3d31d5
|
Merge pull request #11321 from ethereum/test-prbmath
Add semantictest using prbmath
|
2021-05-03 10:36:30 +02:00 |
|
Alexander Arlt
|
68f0f36a2d
|
[soltest] Improve Builtin Initialization.
|
2021-05-02 22:13:40 -05:00 |
|
chriseth
|
426d60f07b
|
Commandline test updates.
|
2021-04-29 16:46:25 +02:00 |
|
chriseth
|
fcc98d12b8
|
Gas updates.
|
2021-04-29 16:45:05 +02:00 |
|
chriseth
|
f30ef06d62
|
Update tests.
|
2021-04-29 15:08:54 +02:00 |
|
Alexander Arlt
|
19ad9fac99
|
[isoltest] Add support to query balance.
|
2021-04-28 16:19:05 +02:00 |
|
chriseth
|
e1ae4e37a0
|
Allow user-defined functions called like builtins.
|
2021-04-28 16:16:32 +02:00 |
|
chriseth
|
5c02837485
|
Merge pull request #10982 from ethereum/storage_builtin
[isoltest] Replace storage command with storage builtin.
|
2021-04-28 15:38:29 +02:00 |
|
chriseth
|
2cd0bb11dc
|
Merge pull request #11316 from ethereum/verbatimdata-tests
Added a few optimizer tests for Verbatim
|
2021-04-28 10:19:19 +02:00 |
|
hrkrshnn
|
8b4eaeabbf
|
Added a few optimizer tests for Verbatim
|
2021-04-28 09:56:45 +02:00 |
|
Alexander Arlt
|
ed27c77def
|
[isoltest] Ignore gas checks on isoltest builtins.
|
2021-04-27 16:28:37 -05:00 |
|
Alexander Arlt
|
1f2711b0aa
|
[isoltest] Replace storage command with 'storage_empty' builtin.
|
2021-04-27 16:28:37 -05:00 |
|
Alex Beregszaszi
|
0b3f3dff60
|
Add ramanujan's pi approximation as a semantic test
|
2021-04-27 20:47:42 +01:00 |
|
Alex Beregszaszi
|
484a4398a7
|
Add semantic tests using prb-math
|
2021-04-27 20:23:13 +01:00 |
|
Alex Beregszaszi
|
ada046ba9a
|
Import prb-math for testing
From 62021c1abc
|
2021-04-27 20:08:33 +01:00 |
|
Alex Beregszaszi
|
5852972ec1
|
Merge pull request #11309 from ethereum/test-stringutils
Add some semantic tests using stringutils
|
2021-04-27 18:12:37 +01:00 |
|
Alex Beregszaszi
|
5331bc679a
|
Fix some issues regarding checked arithmethics in stringutils
|
2021-04-27 17:05:40 +01:00 |
|
Alex Beregszaszi
|
6b3357be50
|
Add semantic tests using stringutils
|
2021-04-27 17:02:54 +01:00 |
|
chriseth
|
3548049c61
|
Merge pull request #10356 from ethereum/isoltest-add-enforce-ewasm
[test] Add support for --enforce-compile-to-ewasm.
|
2021-04-27 17:51:33 +02:00 |
|
Kamil Śliwak
|
43de99dee5
|
Use 'optimizationPreset: none' for objectCompiler tests that rely on things that could get optimized out
|
2021-04-27 14:07:04 +02:00 |
|
Kamil Śliwak
|
a51d72fb89
|
ObjectCompilerTest: Replace 'optimize' setting with 'optimizationPreset'
|
2021-04-27 14:06:56 +02:00 |
|
Kamil Śliwak
|
9c6f8c011f
|
TestCaseReader: Add enumSetting()
|
2021-04-27 14:06:56 +02:00 |
|
Kamil Śliwak
|
28b9d27fae
|
SoltestErrors: Qualify runtime_error with std:: to make it possible to use in in headers
|
2021-04-27 13:43:07 +02:00 |
|
Alex Beregszaszi
|
1a556aaa7f
|
Move compilationTests/stringutils to semanticTests/externalContracts
|
2021-04-27 11:21:14 +01:00 |
|
chriseth
|
f72592549b
|
Merge pull request #11110 from ethereum/issue_10475_isoltest_external_sources
[isoltest] Add support for external sources.
|
2021-04-27 10:54:39 +02:00 |
|
Alexander Arlt
|
da38149f57
|
[test] Add support for --enforce-compile-to-ewasm.
|
2021-04-26 20:31:03 -05:00 |
|
chriseth
|
2b5a24e82e
|
Add function side effects test.
|
2021-04-26 19:56:44 +02:00 |
|
chriseth
|
cb1af8b88a
|
Make verbatim compatible with KnownState.
|
2021-04-26 19:56:44 +02:00 |
|
chriseth
|
e2d8005737
|
Add verbatim builtin.
|
2021-04-26 19:56:44 +02:00 |
|
Alexander Arlt
|
481971cbcf
|
[isoltest] Add support for external sources.
|
2021-04-26 08:27:30 -05:00 |
|
chriseth
|
2969bc0f3e
|
Merge pull request #11302 from ethereum/drop-u160
Drop the util::u160 type
|
2021-04-26 15:12:20 +02:00 |
|
Alexander Arlt
|
8239eaa1b8
|
Fix test builtins & add simple smoke test.
|
2021-04-26 07:51:43 -05:00 |
|
chriseth
|
d9df3d50e2
|
Merge pull request #11311 from anurag-git/issue_10738-3
Use range-v3 loops(remove_erase, remove_erase_if)
|
2021-04-26 14:18:15 +02:00 |
|
chriseth
|
659da4bdc7
|
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
Bytes to bytesNN conversion
|
2021-04-26 11:51:41 +02:00 |
|
anurag4u80
|
c4cf412fed
|
Replaced boost remove_erase and remove_erase_if
|
2021-04-24 08:10:41 +05:30 |
|
Alex Beregszaszi
|
60189b4f61
|
Remove obsolete Error constructor
|
2021-04-23 23:55:22 +01:00 |
|
Kamil Śliwak
|
173a511809
|
Merge pull request #11303 from ethereum/noncopyable
Remove the usage of boost::noncopyable
|
2021-04-23 22:38:49 +02:00 |
|
Alex Beregszaszi
|
f952f851b7
|
Enable more semantic tests for Ewasm
|
2021-04-23 17:00:01 +01:00 |
|
Alex Beregszaszi
|
73b804aff4
|
Update tests
|
2021-04-23 15:54:10 +01:00 |
|
Alex Beregszaszi
|
e39433198d
|
Remove the usage of boost::noncopyable
Prior to this half of the codebase used explicit deleted copy constructors, the others used boost::noncopyable.
|
2021-04-23 14:57:01 +01:00 |
|
Alex Beregszaszi
|
ac192ff4c1
|
Drop the util::u160 type
|
2021-04-23 14:35:06 +01:00 |
|
Alex Beregszaszi
|
37be1b3ed9
|
Remove dependency on util::160 in yulInterpreter
Instead apply explicit truncation or masking for readability.
|
2021-04-23 14:35:05 +01:00 |
|
Djordje Mijovic
|
eb457064b1
|
Adding semantic tests for bytes to bytesNN conversion.
|
2021-04-23 13:30:19 +02:00 |
|
Djordje Mijovic
|
ece42c07df
|
Adding syntax test for bytes to bytesNN conversion.
|
2021-04-23 13:19:19 +02:00 |
|
Harikrishnan Mulackal
|
f162c484ca
|
Merge pull request #11026 from ethereum/resolve-keccak
Evaluate ``keccak256(a, const)``, when the value at memory location ``a`` is known at compile time and ``const <= 32``
|
2021-04-22 19:18:19 +02:00 |
|
hrkrshnn
|
b599235b8d
|
Skip resolving Keccak if AST contains msize.
Also a refactoring changing `m_optimizeMLoad` to `m_containsMSize`.
|
2021-04-22 18:19:47 +02:00 |
|
hrkrshnn
|
3d29ae73e7
|
Isoltest: updated the gas tests.
|
2021-04-22 18:19:47 +02:00 |
|
hrkrshnn
|
b636ef881e
|
Added command line tests for keccak optimization with low runs
The value of keccak256(0, 32) should not be replaced by the big constant
|
2021-04-22 18:19:47 +02:00 |
|
hrkrshnn
|
221292c278
|
Tests and changelog
|
2021-04-22 18:19:47 +02:00 |
|
hrkrshnn
|
1f5b874eaf
|
Optimizer context has parameter expectedExecutionsPerDeployment
|
2021-04-22 17:27:57 +02:00 |
|
chriseth
|
a6a3af58a0
|
Add test.
|
2021-04-22 17:23:56 +02:00 |
|
chriseth
|
ec4558a245
|
Update gas costs.
|
2021-04-22 16:54:02 +02:00 |
|
chriseth
|
314f361d07
|
Update commandline tests.
|
2021-04-22 16:54:02 +02:00 |
|
chriseth
|
00fb2d390b
|
Do not replace zeros by return variable.
|
2021-04-22 16:54:02 +02:00 |
|
Đorđe Mijović
|
8840fb6ffd
|
Merge pull request #11270 from ethereum/addingBoundsByteArraySolYul
|
2021-04-22 15:41:32 +02:00 |
|
chriseth
|
e408b708ac
|
Use "for objects" dialect for function side effects test.
|
2021-04-22 14:37:51 +02:00 |
|
Djordje Mijovic
|
3a4233f3ad
|
[Sol->Yul] Adding bounds check when increasing size of byte array.
|
2021-04-22 11:42:46 +02:00 |
|
chriseth
|
35b651103d
|
Adjust cost of literal zero.
|
2021-04-22 11:42:42 +02:00 |
|
Alex Beregszaszi
|
8fb7a18800
|
Small refactorings for isoltest
|
2021-04-22 01:04:34 +01:00 |
|
Alex Beregszaszi
|
f1aaae36ee
|
Upgrade to EVMC 7.5.0
One important change: MockedAccount.storage is a map and not unordered_map
|
2021-04-21 21:05:40 +01:00 |
|
Leonardo
|
7bbf3a694b
|
Merge pull request #11261 from ethereum/smt_choose_target
[SMTChecker] Add option to choose contracts to be analyzed
|
2021-04-21 13:11:33 +02:00 |
|
chriseth
|
c3d73982ea
|
Merge pull request #11268 from ethereum/refactorByteArrayPopSol2Yul
[Sol->Yul] Refactor ByteArrayPop to use unchecked index access
|
2021-04-21 13:05:00 +02:00 |
|
chriseth
|
e2120f1f2f
|
Merge pull request #11272 from ethereum/replace-boost-with-rangev3-solgen
Remove most boost usages in Yul proto converter
|
2021-04-21 12:21:57 +02:00 |
|
Djordje Mijovic
|
d03744489f
|
Update cmdline tests.
|
2021-04-21 11:01:22 +02:00 |
|
Djordje Mijovic
|
9fcf16900d
|
Update gas costs in smeantic tests.
|
2021-04-21 11:01:22 +02:00 |
|
Leonardo Alt
|
dd1865873e
|
Choose contracts to be analyzed by the SMTChecker
|
2021-04-21 10:34:14 +02:00 |
|
Bhargava Shastry
|
69dd1771b7
|
Remove as many boost usages as possible in protoToYul.cpp
|
2021-04-20 18:46:19 +02:00 |
|
Alex Beregszaszi
|
4177270562
|
Trivial isoltest updates: comments always on the same line
|
2021-04-20 17:38:29 +02:00 |
|
Alex Beregszaszi
|
1be07c2b36
|
Trivial isoltest updates: missing // ---- at the end
|
2021-04-20 17:38:29 +02:00 |
|
Alex Beregszaszi
|
84c05d35f3
|
Trivial isoltest updates: normalized whitespace
|
2021-04-20 17:38:29 +02:00 |
|
Alex Beregszaszi
|
45c6bbe02b
|
Trivial isoltest updates: directives sorted alphabetically
|
2021-04-20 17:21:56 +02:00 |
|
chriseth
|
cf7f814a4e
|
Merge pull request #10921 from ethereum/issue-10881
Natspec: Don't copy from base function if return parameters differ
|
2021-04-20 15:33:48 +02:00 |
|
Leonardo Alt
|
a39a6e26da
|
update tests
|
2021-04-19 19:23:18 +02:00 |
|
Leonardo Alt
|
80892c8a21
|
Fix nondeterminism
|
2021-04-19 19:23:18 +02:00 |
|
Leonardo Alt
|
36def3ef6e
|
tests for free constants
|
2021-04-19 19:23:18 +02:00 |
|
Leonardo Alt
|
fd8b4afb76
|
new free function tests
|
2021-04-19 19:23:18 +02:00 |
|
Leonardo Alt
|
095d337140
|
Basic support to free constants
|
2021-04-19 19:23:18 +02:00 |
|
Leonardo Alt
|
6ae82fcec2
|
Add tests for the library bug
|
2021-04-19 19:23:18 +02:00 |
|
Leonardo Alt
|
4e34359063
|
Basic support to free functions
|
2021-04-19 19:23:18 +02:00 |
|
chriseth
|
6a0a51110d
|
Merge pull request #11256 from ethereum/smt_target_array
Change settings.modelChecker.targets to take an array instead of string
|
2021-04-19 18:47:06 +02:00 |
|
Leonardo Alt
|
e3abde43f5
|
Change settings.modelChecker.targets to take an array instead of string
|
2021-04-19 17:53:03 +02:00 |
|
Kamil Śliwak
|
0d4871ad10
|
Prevent adding '-' CLI flag to allowed paths as if it was an actual file
- This resulted in a bug where using stdin was effectively disabling allowed path checks.
|
2021-04-19 16:58:48 +02:00 |
|
Kamil Śliwak
|
2abd3073d4
|
Merge pull request #11235 from ethereum/cmdline-tests-for-stdin
Allow using stdin in cmdlineTests
|
2021-04-19 16:21:43 +02:00 |
|
chriseth
|
1feca5dddb
|
Merge pull request #11259 from ethereum/exportErrorsInAst
Export used errors in the AST.
|
2021-04-19 15:53:32 +02:00 |
|
Mathias Baumann
|
1737bd7ded
|
Natspec: Don't copy from base function if return parameters differ
|
2021-04-19 15:20:30 +02:00 |
|
chriseth
|
8eb0d5edf6
|
Export used errors in the AST.
|
2021-04-19 14:15:50 +02:00 |
|
Bhargava Shastry
|
14d2170b46
|
Merge pull request #11238 from ethereum/yul-interpreter-storage-state
Permit Yul interpreter vs Evmone storage comparison.
|
2021-04-19 12:22:59 +02:00 |
|
Kamil Śliwak
|
7b467a49d7
|
Disable assertion that gives non-deterministic results in in slice tests for SMTChecker
|
2021-04-15 17:14:21 +02:00 |
|
Bhargava Shastry
|
6941143613
|
Merge pull request #11216 from ethereum/fix-abiv2-fuzzer-bug
Fix use of const ref in Abiv2 and other proto fuzzers.
|
2021-04-14 15:03:57 +02:00 |
|
Bhargava Shastry
|
15bf6af77a
|
Remove output parameters from function call since they are generated on the fly in the converter.
|
2021-04-14 13:53:37 +02:00 |
|
Bhargava Shastry
|
7c806217fb
|
Changes to yul proto mutator.
|
2021-04-14 13:53:37 +02:00 |
|
Bhargava Shastry
|
cf08c9b255
|
Correct use of emplace_back
|
2021-04-14 13:53:37 +02:00 |
|
Bhargava Shastry
|
1709b2924b
|
Changes to how function calls are generated.
|
2021-04-14 13:53:37 +02:00 |
|
Christian Parpart
|
81c7b30a6a
|
Merge pull request #11234 from ethereum/fix-file-reader-compiler-stack-source-unit-name-mismatch
Use identical source unit names in FileReader and CompilerStack
|
2021-04-14 13:46:14 +02:00 |
|
chriseth
|
11b227e33e
|
Merge pull request #11205 from ethereum/fix-docstring-bug
Fix docstring bug
|
2021-04-14 13:18:33 +02:00 |
|
Djordje Mijovic
|
ea5cda08c8
|
Adding tests for bytes.concat with fixed bytes arguments.
|
2021-04-14 11:21:24 +02:00 |
|
Bhargava Shastry
|
b1392ac988
|
Fix use of const ref in Abiv2 and other proto fuzzers.
|
2021-04-13 19:38:43 +02:00 |
|
Kamil Śliwak
|
59ef75cf5a
|
cmdlineTests: Allow providing content of the standard input when not testing via Standard JSON
|
2021-04-13 13:37:12 +02:00 |
|
Kamil Śliwak
|
4e4f46cde5
|
cmdlineTests: Allow tests with no input file
|
2021-04-13 13:37:12 +02:00 |
|
Kamil Śliwak
|
cc65b426d0
|
Merge pull request #11237 from ethereum/fix-wrong-exit-code-update-in-cmdline-tests
Fix exit code update in cmdlineTests
|
2021-04-13 13:34:57 +02:00 |
|
Kamil Śliwak
|
6a41b417a3
|
FileReader: Store files loaded by the callback under their source unit name
|
2021-04-13 13:25:59 +02:00 |
|
Kamil Śliwak
|
b9b483a0c3
|
cmdlineTests.sh: Make regex for stripping version from test output match even if there's no whitespace after colon
|
2021-04-13 13:25:32 +02:00 |
|
chriseth
|
0289994da5
|
Merge pull request #11221 from ethereum/fixCalldataDecodingOverflowBug
Fix calldata decoding overflow bug
|
2021-04-12 18:11:29 +02:00 |
|
chriseth
|
4912bfe639
|
Merge pull request #11229 from ethereum/antlrPath
Fix import paths in grammar and grammar testing details.
|
2021-04-12 16:30:41 +02:00 |
|
Daniel Kirchner
|
6fdfd8b62b
|
Fix import path grammar and grammar testing details.
|
2021-04-12 14:54:36 +02:00 |
|
chriseth
|
2ed17e4b43
|
Update tests.
|
2021-04-12 13:43:56 +02:00 |
|
chriseth
|
72d0a56a72
|
Fix array decoding offset overflow.
|
2021-04-12 13:43:51 +02:00 |
|
chriseth
|
32b8332867
|
Refactor array decoding.
|
2021-04-12 13:43:51 +02:00 |
|
Bhargava Shastry
|
033ee0e2bc
|
Permit Yul interpreter vs Evmone storage comparison.
|
2021-04-12 10:39:23 +02:00 |
|
hrkrshnn
|
382c488edd
|
Fix missing error when events are used without an emit statement.
Whenever there was a proper invocation of events, the compiler assumed that all the subsequent
invocations were proper.
|
2021-04-12 10:23:05 +02:00 |
|
Kamil Śliwak
|
7d37e37d95
|
cmdlineTests.sh: Fix error code update using the wrong value
|
2021-04-10 22:58:49 +02:00 |
|
Leonardo Alt
|
8a7e94c06f
|
Keep pragma in smoke test for bytecode compare script
|
2021-04-08 21:03:39 +02:00 |
|
Leonardo Alt
|
ad10bee8f0
|
update command line tests
|
2021-04-08 21:03:39 +02:00 |
|
Leonardo Alt
|
0a4afa71bd
|
Update old tests
|
2021-04-08 21:03:39 +02:00 |
|
Leonardo Alt
|
d617ef461e
|
Add new tests
|
2021-04-08 21:03:38 +02:00 |
|
chriseth
|
0cc0cabd30
|
Merge pull request #11224 from ethereum/lastAllocationUnbounded
Use unbounded allocation before returning.
|
2021-04-08 19:32:40 +02:00 |
|
Daniel Kirchner
|
96c8123b6b
|
Use unbounded allocation before returning.
|
2021-04-08 18:37:24 +02:00 |
|
hrkrshnn
|
e96a161115
|
Tests and changelog
|
2021-04-08 17:06:24 +02:00 |
|
chriseth
|
2856f56525
|
Merge pull request #10942 from ethereum/returnSlotAllocation
Delayed return slot allocation.
|
2021-04-08 16:42:07 +02:00 |
|
chriseth
|
f04adde664
|
Allow hex string literals in Yul.
|
2021-04-08 15:03:33 +02:00 |
|
chriseth
|
6d6112a81b
|
Merge pull request #11210 from anurag-git/issue_10738-2
Use range-v3 loops(transform)
|
2021-04-08 14:56:15 +02:00 |
|
anurag4u80
|
b2ca7916aa
|
Replaced boost::adaptors::transformed
|
2021-04-08 17:38:14 +05:30 |
|
Harikrishnan Mulackal
|
c060bd5633
|
Merge pull request #11211 from ethereum/someTests
Add some bytecode reference tests.
|
2021-04-08 09:29:51 +02:00 |
|
Christian Parpart
|
a5cae64a48
|
Merge pull request #11113 from ethereum/filereader
Extracts import file reading & remapping logic out of CommandLineInterface into their own classes.
|
2021-04-06 22:38:19 +02:00 |
|
chriseth
|
47728a083f
|
Add some bytecode reference tests.
|
2021-04-06 16:25:02 +02:00 |
|
Christian Parpart
|
3490577140
|
Extract import-file remapping logic out of CompilerStack into ImportRemapper.
|
2021-04-06 14:28:53 +02:00 |
|
Bhargava Shastry
|
6f3095a199
|
Merge pull request #11141 from ethereum/compilation-framework-fuzzer
Enable multi-source fuzzing.
|
2021-04-06 14:00:11 +02:00 |
|
Daniel Kirchner
|
6fc4b04d1d
|
Update test expectations.
|
2021-04-06 13:41:26 +02:00 |
|
Daniel Kirchner
|
4b0f8383a6
|
Reuse function argument slots and defer allocation of return variable slots in EVMCodeTransform.
|
2021-04-06 13:38:05 +02:00 |
|
Daniel Kirchner
|
04a051d380
|
Add test cases for return slot allocation.
|
2021-04-06 13:31:22 +02:00 |
|
chriseth
|
98a8640928
|
Merge pull request #11203 from anurag-git/issue_10738-1
Use range-v3 loops (reverse, keys, values)
|
2021-04-01 12:19:40 +02:00 |
|
anurag4u80
|
bbcdddeed9
|
Replaced keys, values and reverse with ranges
|
2021-03-31 23:33:04 +05:30 |
|
Djordje Mijovic
|
aeba059192
|
Fixing auto update for macos.
|
2021-03-31 16:51:01 +02:00 |
|
Martin Blicha
|
330fb8f4d0
|
[SMTChecker] Assignment refactoring
|
2021-03-31 13:36:50 +02:00 |
|
Leonardo
|
78d94737a4
|
Merge pull request #11188 from blishko/issue-11181
[SMTChecker] Fix crash when analysing try-catch clauses with function call.
|
2021-03-31 11:24:36 +02:00 |
|
Mathias Baumann
|
e590a99f39
|
Detect circular references for library and free functions
|
2021-03-30 23:06:30 +02:00 |
|
chriseth
|
79d7466e19
|
NatSpec for errors.
|
2021-03-30 21:16:58 +02:00 |
|
chriseth
|
517cd17a6f
|
Add errors to the ABI.
|
2021-03-30 21:16:58 +02:00 |
|
chriseth
|
e877e2bba7
|
Use all referenced errors.
|
2021-03-30 21:15:46 +02:00 |
|
chriseth
|
1057fd5355
|
Take revert statement into account in control flow graph.
|
2021-03-30 21:15:46 +02:00 |
|
chriseth
|
d5669696d5
|
Code generation for errors.
|
2021-03-30 21:15:46 +02:00 |
|
chriseth
|
fb67051467
|
Revert statement.
|
2021-03-30 21:15:46 +02:00 |
|
chriseth
|
b04b189959
|
Syntax for custom errors.
|
2021-03-30 21:15:18 +02:00 |
|
Martin Blicha
|
2d231f1859
|
[SMTChecker] Changed SMTEncoder::mergeVariables to work regardless which branch has been visited first
|
2021-03-30 20:35:44 +02:00 |
|
Leonardo Alt
|
ba97d6ac4e
|
Add local vars to cex
|
2021-03-30 17:55:21 +02:00 |
|
Leonardo Alt
|
dbd067d6db
|
Report out of bounds index access
|
2021-03-30 10:28:48 +02:00 |
|
chriseth
|
bb49bc5892
|
Merge pull request #10418 from ethereum/function-specializer
Function specializer
|
2021-03-29 15:48:01 +02:00 |
|
hrkrshnn
|
0100f48e05
|
FunctionSpecializer: skip specializing recursive functions
This avoids potential pathological behaviour, like in Ackermann function.
|
2021-03-29 11:02:31 +02:00 |
|