From e64703b1518ce715890ef7e25eae4b42383fc649 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 23 Jul 2026 13:54:46 -0400 Subject: [PATCH] fix most tests --- src/test/app/Wasm_test.cpp | 42 +- .../all_host_functions/src/lib.rs | 26 +- src/test/app/wasm_fixtures/copyFixtures.py | 17 +- src/test/app/wasm_fixtures/disableFloat.wat | 2 +- src/test/app/wasm_fixtures/fixtures.cpp | 835 +++++++++--------- src/test/app/wasm_fixtures/float_0/Cargo.lock | 64 +- src/test/app/wasm_fixtures/float_0/Cargo.toml | 2 +- src/test/app/wasm_fixtures/float_0/src/lib.rs | 52 +- .../app/wasm_fixtures/float_tests/Cargo.lock | 64 +- .../app/wasm_fixtures/float_tests/Cargo.toml | 2 +- .../app/wasm_fixtures/float_tests/src/lib.rs | 288 ++++-- .../wasm_fixtures/wat/custom_page_sizes.wat | 8 +- .../app/wasm_fixtures/wat/deep_recursion.wat | 6 +- src/test/app/wasm_fixtures/wat/memory64.wat | 4 +- .../wat/memory_end_of_word_over_limit.wat | 2 +- .../wat/memory_grow_0_page_more_than_8MB.wat | 2 +- .../wasm_fixtures/wat/memory_grow_0_to_1.wat | 2 +- .../wat/memory_grow_1_page_more_than_8MB.wat | 2 +- .../wasm_fixtures/wat/memory_grow_1_to_0.wat | 2 +- .../wat/memory_init_1_page_more_than_8MB.wat | 2 +- .../wat/memory_last_byte_of_8MB.wat | 2 +- .../wat/memory_negative_address.wat | 2 +- .../wat/memory_offset_over_limit.wat | 2 +- .../wat/memory_pointer_at_limit.wat | 4 +- .../wat/memory_pointer_over_limit.wat | 4 +- .../app/wasm_fixtures/wat/multi_memory.wat | 4 +- .../wat/proposal_bulk_memory.wat | 2 +- .../wat/proposal_extended_const.wat | 4 +- .../wat/proposal_float_to_int.wat | 2 +- .../wat/proposal_gc_struct_new.wat | 2 +- .../wat/proposal_multi_value.wat | 4 +- .../wat/proposal_mutable_global.wat | 4 +- .../wasm_fixtures/wat/proposal_ref_types.wat | 2 +- .../wasm_fixtures/wat/proposal_sign_ext.wat | 2 +- .../wasm_fixtures/wat/proposal_tail_call.wat | 4 +- src/test/app/wasm_fixtures/wat/start_loop.wat | 4 +- .../wasm_fixtures/wat/table_0_elements.wat | 4 +- .../app/wasm_fixtures/wat/table_2_tables.wat | 4 +- .../wasm_fixtures/wat/table_64_elements.wat | 4 +- .../wasm_fixtures/wat/table_65_elements.wat | 4 +- .../app/wasm_fixtures/wat/table_uint_max.wat | 4 +- .../wasm_fixtures/wat/trap_divide_by_0.wat | 2 +- .../wat/trap_func_signature_mismatch.wat | 4 +- .../wasm_fixtures/wat/trap_int_overflow.wat | 2 +- .../app/wasm_fixtures/wat/trap_null_call.wat | 4 +- .../wasm_fixtures/wat/trap_unreachable.wat | 4 +- .../app/wasm_fixtures/wat/wasi_get_time.wat | 4 +- src/test/app/wasm_fixtures/wat/wasi_print.wat | 4 +- .../app/wasm_fixtures/wat/wide_arithmetic.wat | 4 +- 49 files changed, 864 insertions(+), 656 deletions(-) diff --git a/src/test/app/Wasm_test.cpp b/src/test/app/Wasm_test.cpp index be5fec7c06..463205a422 100644 --- a/src/test/app/Wasm_test.cpp +++ b/src/test/app/Wasm_test.cpp @@ -140,7 +140,7 @@ runFinishFunction(std::string const& code) auto& engine = WasmEngine::instance(); auto const wasm = hexToBytes(code); HostFunctions hfs; - auto const re = engine.run(wasm, hfs, 10'000'000, "finish"); + auto const re = engine.run(wasm, hfs, 10'000'000, escrowFunctionName); if (re.has_value()) { return std::optional(re->result); @@ -403,7 +403,7 @@ struct Wasm_test : public beast::unit_test::Suite auto re = engine.run( allHostFuncWasm, hfs, 1'000'000, escrowFunctionName, {}, imp, env.journal); - checkResult(re, 1, 27'617); + checkResult(re, 1, 26'329); env.close(); } @@ -425,7 +425,7 @@ struct Wasm_test : public beast::unit_test::Suite auto re = engine.run( allHostFuncWasm, hfs, 1'000'000, escrowFunctionName, {}, imp, env.journal); - checkResult(re, 1, 70'877); + checkResult(re, 1, 69'589); env.close(); } @@ -446,8 +446,7 @@ struct Wasm_test : public beast::unit_test::Suite { // Running out of gas now terminates with tecOUT_OF_GAS (was // previously collapsed into tecFAILED_PROCESSING). - BEAST_EXPECTS( - re.error().ter == tecOUT_OF_GAS, std::to_string(TERtoInt(re.error().ter))); + BEAST_EXPECTS(re.error().ter == tecOUT_OF_GAS, transToken(re.error().ter)); } env.close(); @@ -466,7 +465,7 @@ struct Wasm_test : public beast::unit_test::Suite { TestHostFunctions hfs(env); auto re = runEscrowWasm(allHFWasm, hfs, 100'000, escrowFunctionName, {}); - checkResult(re, 1, 70'877); + checkResult(re, 1, 69'589); } { @@ -490,7 +489,7 @@ struct Wasm_test : public beast::unit_test::Suite TestHostFunctions hfs(env); auto re = runEscrowWasm( allHFWasm, hfs, std::numeric_limits::max(), escrowFunctionName, {}); - checkResult(re, 1, 70'877); + checkResult(re, 1, 69'589); } { // fail because trying to access nonexistent field @@ -508,7 +507,7 @@ struct Wasm_test : public beast::unit_test::Suite FieldNotFoundHostFunctions hfs(env); auto re = runEscrowWasm(allHFWasm, hfs, 100'000, escrowFunctionName, {}); - checkResult(re, -201, 29'502); + checkResult(re, -201, 28'421); } { // fail because trying to allocate more than MAX_PAGES memory @@ -526,7 +525,7 @@ struct Wasm_test : public beast::unit_test::Suite OversizedFieldHostFunctions hfs(env); auto re = runEscrowWasm(allHFWasm, hfs, 100'000, escrowFunctionName, {}); - checkResult(re, -201, 29'502); + checkResult(re, -201, 28'421); } // This test use log output, so DEBUG_OUTPUT must be disabled. @@ -536,7 +535,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const deepWasm = hexToBytes(kDeepRecursionHex); TestHostFunctionsSink hfs(env); - std::string const funcName("finish"); + std::string const funcName(escrowFunctionName); auto re = runEscrowWasm(deepWasm, hfs, 1'000'000'000, funcName, {}); BEAST_EXPECT(!re && re.error().ter); // std::cout << "bad case (deep recursion) result " << re.error() @@ -556,7 +555,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const s = sink.messages().str(); BEAST_EXPECT(countSubstr(s, "WASMI Error: failure to call func") == 1); - BEAST_EXPECT(countSubstr(s, "exception: failure") > 0); + BEAST_EXPECT(countSubstr(s, "TrapCode(StackOverflow)") > 0); } #endif @@ -569,7 +568,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const re = runEscrowWasm(infiniteLoopWasm, hfs, 1'000'000, funcName, {}); if (BEAST_EXPECT(!re.has_value())) { - BEAST_EXPECT(re.error().ter == tecFAILED_PROCESSING); + BEAST_EXPECT(re.error().ter == tecOUT_OF_GAS); } } @@ -623,7 +622,7 @@ struct Wasm_test : public beast::unit_test::Suite { testcase("float point"); - std::string const funcName("finish"); + std::string const funcName(escrowFunctionName); using namespace test::jtx; @@ -633,7 +632,7 @@ struct Wasm_test : public beast::unit_test::Suite TestHostFunctions hfs(env); auto re = runEscrowWasm(floatTestWasm, hfs, 200'000, funcName, {}); - checkResult(re, 1, 134'938); + checkResult(re, 1, 134'402); env.close(); } @@ -642,7 +641,7 @@ struct Wasm_test : public beast::unit_test::Suite TestHostFunctions hfs(env); auto re = runEscrowWasm(float0Wasm, hfs, 100'000, funcName, {}); - checkResult(re, 1, 2'819); + checkResult(re, 1, 2'775); env.close(); } } @@ -659,7 +658,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const codecovWasm = hexToBytes(kCodecovTestsWasmHex); TestHostFunctions hfs(env); - auto const allowance = 204'624; + auto const allowance = 204'316; auto re = runEscrowWasm(codecovWasm, hfs, allowance, escrowFunctionName, {}); checkResult(re, 1, allowance); @@ -674,7 +673,7 @@ struct Wasm_test : public beast::unit_test::Suite Env env{*this}; auto disabledFloatWasm = hexToBytes(kDisabledFloatHex); - std::string const funcName("finish"); + std::string const funcName(escrowFunctionName); TestHostFunctions hfs(env); { @@ -688,7 +687,7 @@ struct Wasm_test : public beast::unit_test::Suite { // f32 add, can't create module exception - disabledFloatWasm[0x117] = 0x92; + disabledFloatWasm[0x11e] = 0x92; auto const re = runEscrowWasm(disabledFloatWasm, hfs, 1'000'000, funcName, {}); if (BEAST_EXPECT(!re.has_value())) { @@ -792,13 +791,14 @@ struct Wasm_test : public beast::unit_test::Suite ImportVec const imports; auto& engine = WasmEngine::instance(); - auto checkRes = engine.check(startLoopWasm, hfs, "finish", {}, imports, env.journal); - BEAST_EXPECTS(checkRes == tesSUCCESS, std::to_string(TERtoInt(checkRes))); + auto checkRes = + engine.check(startLoopWasm, hfs, escrowFunctionName, {}, imports, env.journal); + BEAST_EXPECTS(checkRes == tesSUCCESS, transToken(checkRes)); auto result = engine.run(startLoopWasm, hfs, 1'000'000, escrowFunctionName, {}, imports, env.journal); auto resultTer = result.error().ter; - BEAST_EXPECTS(resultTer == tecFAILED_PROCESSING, std::to_string(TERtoInt(resultTer))); + BEAST_EXPECTS(resultTer == tecFAILED_PROCESSING, transToken(resultTer)); } void diff --git a/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs b/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs index a40aa91d6a..ad9574c82b 100644 --- a/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs +++ b/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs @@ -389,7 +389,7 @@ fn test_any_ledger_object_functions() -> i32 { let escrow_finish = EscrowFinish; let account_id = escrow_finish.get_account().unwrap(); - // Test 4.1: cache_ledger_obj() - Cache a ledger object + // Test 4.1: cache_le() - Cache a ledger object let mut keylet_buffer = [0u8; 32]; let keylet_result = unsafe { host::accountroot_id( @@ -412,7 +412,7 @@ fn test_any_ledger_object_functions() -> i32 { if cache_result <= 0 { let _ = trace_num( - "INFO: cache_ledger_obj failed (expected with test fixtures):", + "INFO: cache_le failed (expected with test fixtures):", cache_result as i64, ); // Test fixtures may not contain the account object - this is expected @@ -421,7 +421,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test 4.2-4.5 with invalid slot (should fail gracefully) let mut test_buffer = [0u8; 32]; - // Test get_ledger_obj_field with invalid slot + // Test le_field with invalid slot let field_result = unsafe { host::le_field( 1, @@ -432,12 +432,12 @@ fn test_any_ledger_object_functions() -> i32 { }; if field_result < 0 { let _ = trace_num( - "INFO: get_ledger_obj_field failed as expected (no cached object):", + "INFO: le_field failed as expected (no cached object):", field_result as i64, ); } - // Test get_ledger_obj_nested_field with invalid slot + // Test le_inner_field with invalid slot let locator = [ 0x01_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, ]; // Two int32s in little-endian: [1, 0] @@ -452,16 +452,16 @@ fn test_any_ledger_object_functions() -> i32 { }; if nested_result < 0 { let _ = trace_num( - "INFO: get_ledger_obj_nested_field failed as expected:", + "INFO: le_inner_field failed as expected:", nested_result as i64, ); } - // Test get_ledger_obj_array_len with invalid slot + // Test le_inner_arr_len with invalid slot let array_result = unsafe { host::le_arr_len(1, sfield::Signers.into()) }; if array_result < 0 { let _ = trace_num( - "INFO: get_ledger_obj_array_len failed as expected:", + "INFO: le_inner_arr_len failed as expected:", array_result as i64, ); } @@ -484,7 +484,7 @@ fn test_any_ledger_object_functions() -> i32 { let slot = cache_result; let _ = trace_num("Successfully cached object in slot:", slot as i64); - // Test 4.2: get_ledger_obj_field() - Access field from cached object + // Test 4.2: le_field() - Access field from cached object let mut cached_balance_buffer = [0u8; 8]; let cached_balance_result = unsafe { host::le_field( @@ -497,7 +497,7 @@ fn test_any_ledger_object_functions() -> i32 { if cached_balance_result <= 0 { let _ = trace_num( - "INFO: get_ledger_obj_field(Balance) failed:", + "INFO: le_field(Balance) failed:", cached_balance_result as i64, ); } else if cached_balance_result == 8 { @@ -522,7 +522,7 @@ fn test_any_ledger_object_functions() -> i32 { ); } - // Test 4.3: get_ledger_obj_nested_field() - Nested field from cached object + // Test 4.3: le_inner_field() - Nested field from cached object let locator = [ 0x01_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, 0x00_u8, ]; // Two int32s in little-endian: [1, 0] @@ -539,7 +539,7 @@ fn test_any_ledger_object_functions() -> i32 { if cached_nested_result < 0 { let _ = trace_num( - "INFO: get_ledger_obj_nested_field not applicable:", + "INFO: le_inner_field not applicable:", cached_nested_result as i64, ); } else { @@ -551,7 +551,7 @@ fn test_any_ledger_object_functions() -> i32 { ); } - // Test 4.4: get_ledger_obj_array_len() - Array length from cached object + // Test 4.4: le_inner_arr_len() - Array length from cached object let cached_array_len = unsafe { host::le_arr_len(slot, sfield::Signers.into()) }; let _ = trace_num( "Cached object Signers array length:", diff --git a/src/test/app/wasm_fixtures/copyFixtures.py b/src/test/app/wasm_fixtures/copyFixtures.py index 8e457b71e2..23d116cbef 100644 --- a/src/test/app/wasm_fixtures/copyFixtures.py +++ b/src/test/app/wasm_fixtures/copyFixtures.py @@ -185,13 +185,28 @@ def process_c(project_name): def wat_to_wasm(wat_path, wasm_path): - build_cmd = ["wat2wasm", wat_path, "-o", wasm_path] + build_cmd = ["wat2wasm", "--enable-all", wat_path, "-o", wasm_path] try: subprocess.run(build_cmd, check=True) print(f"WASM file for {os.path.basename(wat_path)} has been built.") + return except FileNotFoundError: print("exec error: wat2wasm is required to build WAT fixtures") sys.exit(1) + except subprocess.CalledProcessError: + # wat2wasm (wabt) does not support some proposal text syntax such as + # the GC instructions, so fall back to wasm-tools which does. + pass + + fallback_cmd = ["wasm-tools", "parse", wat_path, "-o", wasm_path] + try: + subprocess.run(fallback_cmd, check=True) + print( + f"WASM file for {os.path.basename(wat_path)} has been built with wasm-tools." + ) + except FileNotFoundError: + print("exec error: wasm-tools is required to build this WAT fixture") + sys.exit(1) except subprocess.CalledProcessError as e: print(f"exec error: {e}") sys.exit(1) diff --git a/src/test/app/wasm_fixtures/disableFloat.wat b/src/test/app/wasm_fixtures/disableFloat.wat index 035a849e30..5e09371ee9 100644 --- a/src/test/app/wasm_fixtures/disableFloat.wat +++ b/src/test/app/wasm_fixtures/disableFloat.wat @@ -21,7 +21,7 @@ (global (;9;) i32 (i32.const 1)) (export "memory" (memory 0)) (export "__wasm_call_ctors" (func 0)) - (export "finish" (func 1)) + (export "escrow_finish" (func 1)) (export "buf" (global 0)) (export "__dso_handle" (global 1)) (export "__data_end" (global 2)) diff --git a/src/test/app/wasm_fixtures/fixtures.cpp b/src/test/app/wasm_fixtures/fixtures.cpp index 955d0f21b3..f093a162d4 100644 --- a/src/test/app/wasm_fixtures/fixtures.cpp +++ b/src/test/app/wasm_fixtures/fixtures.cpp @@ -5,9 +5,18 @@ #include extern std::string const kFibWasmHex = - "0061736d0100000001090260000060017f017f0303020001071b02115f5f7761736d5f63616c6c5f63746f72730000" - "0366696200010a440202000b3f01017f200045044041000f0b2000410348044041010f0b200041026a210003402000" - "41036b100120016a2101200041026b220041044a0d000b200141016a0b"; + "0061736d0100000001090260000060017f017f030302000105030100020638097f004180080b7f004180080b7f0041" + "80080b7f00418088040b7f004180080b7f00418088040b7f00418080080b7f0041000b7f0041010b07a7010c066d65" + "6d6f72790200115f5f7761736d5f63616c6c5f63746f727300000366696200010c5f5f64736f5f68616e646c650300" + "0a5f5f646174615f656e6403010b5f5f737461636b5f6c6f7703020c5f5f737461636b5f6869676803030d5f5f676c" + "6f62616c5f6261736503040b5f5f686561705f6261736503050a5f5f686561705f656e6403060d5f5f6d656d6f7279" + "5f6261736503070c5f5f7461626c655f6261736503080a440202000b3f01017f200045044041000f0b200041034804" + "4041010f0b200041026a21000340200041036b100120016a2101200041026b220041044a0d000b200141016a0b007f" + "0970726f647563657273010c70726f6365737365642d62790105636c616e675f31392e312e352d776173692d73646b" + "202868747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c6c766d2d70726f6a656374206162346235613264" + "62353832393538616631656533303861373930636664623432626432343732302900490f7461726765745f66656174" + "75726573042b0f6d757461626c652d676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d747970" + "65732b0a6d756c746976616c7565"; extern std::string const kLedgerSqnWasmHex = "0061736d01000000010e0360027f7f017f6000006000017f02120103656e760a6c6467725f696e6465780000030302" @@ -40,15 +49,15 @@ extern std::string const kAllHostFunctionsWasmHex = "686f73745f6c69620a6c655f6172725f6c656e000008686f73745f6c69620a74726163655f61636374000208686f73" "745f6c69620e6163636f756e74726f6f745f6964000208686f73745f6c6962106c655f696e6e65725f6172725f6c65" "6e000108686f73745f6c6962086c655f6669656c64000208686f73745f6c6962086c655f696e6e65720006030c0b09" - "0a05050b05000101030005030100110619037f01418080c0000b7f0041af99c0000b7f0041b099c0000b073504066d" + "0a05050b05000101030005030100110619037f01418080c0000b7f0041ed98c0000b7f0041f098c0000b073504066d" "656d6f727902000d657363726f775f66696e697368001e0a5f5f646174615f656e6403010b5f5f686561705f626173" - "6503020ae41c0b8d0101027f230041306b220124002000027f418180202001411c6a4114100022024114470440417f" + "6503020ae31c0b8d0101027f230041306b220124002000027f418180202001411c6a4114100022024114470440417f" "20022002417f4e1b210241010c010b200020012d001e3a0003200020012f001c3b0001200120012900233703082001" "200129002837000d200128001f21022000200129000d37000d2000200129030837020841000b3a0000200020023602" "04200141306a24000b3a0020012d00004101460440418080c000410b20013402041001000b20002001280011360010" "20002001290009370008200020012900013700000b1900200241094f0440000b20002002360204200020013602000b" - "1900200241214f0440000b20002002360204200020013602000b941a01087f230041b0036b2200240041d398c00041" - "1b41014100410010021a41ee98c000411941014100410010021a41a984c000412b41014100410010021a2000410036" + "1900200241214f0440000b20002002360204200020013602000b931a01087f230041b0036b22002400419198c00041" + "1b41014100410010021a41ac98c000411941014100410010021a41a984c000412b41014100410010021a2000410036" "027002400240024002400240024002400240200041f0006a220441041003220141004a044041d484c0004117200028" "0270220141ff81fc0771410878200141187841ff81fc077172ad10011a200041003602900120004190016a22034104" "1004220141004c0d0141eb84c0004113200028029001220141ff81fc0771410878200141187841ff81fc077172ad10" @@ -62,141 +71,140 @@ extern std::string const kAllHostFunctionsWasmHex = "b487c00041142001ad10011a200041286a20052001101d41c887c000410d2000280228200028022c410110021a0c01" "0b41d587c00041292001ac10011a0b41fe87c00041154183803c1007ac10011a419388c00041134189803c1007ac10" "011a0240200041f0006a41081008220141004e044041a688c00041142001ad10011a0c010b41ba88c000412d2001ac" - "10011a0b41e788c000412341014100410010021a41db93c000413341014100410010021a2000420037034841828018" - "200041c8006a220141081009220341004c0d0620034108460440418e94c000412b420810011a41b994c000412f2001" - "4108410110021a0c080b41e894c000412f2003ad10011a200041206a200041c8006a2003101c419795c00041172000" + "10011a0b41e788c000412341014100410010021a419993c000413341014100410010021a2000420037034841828018" + "200041c8006a220141081009220341004c0d062003410846044041cc93c000412b420810011a41f793c000412f2001" + "4108410110021a0c080b41a694c000412f2003ad10011a200041206a200041c8006a2003101c41d594c00041172000" "2802202000280224410110021a0c070b418186c000411d2001ac10011a419b7f21020c070b41dc85c00041252001ac" "10011a419a7f21020c060b41b185c000412b2001ac10011a41997f21020c050b41f689c000412a2001ac10011a41b7" "7e21020c040b41b589c00041c1002001ac10011a41b67e21020c030b418a89c000412b2001ac10011a41b57e21020c" - "020b41ae95c00041c5002003ac10011a0b200041003602a00120004200370398012000420037039001024041818020" - "20004190016a220341141009220141004a044041f395c000411e2003101f0c010b419196c00041332001ac10011a0b" + "020b41ec94c00041c5002003ac10011a0b200041003602a00120004200370398012000420037039001024041818020" + "20004190016a220341141009220141004a044041b195c000411e2003101f0c010b41cf95c00041332001ac10011a0b" "20004100360071200041013a007020004100360074200042003703c801200042003703c001200042003703b8012000" - "42003703b0010240200041f0006a4108200041b0016a22014120100a220341004e044041c496c000411c2003ad1001" - "1a200041186a20012003101d41e096c00041152000280218200028021c410110021a0c010b41f596c00041392003ac" - "10011a0b41ae97c00041244183803c100bac10011a0240200041f0006a4108100c220141004e044041d297c000411c" - "2001ad10011a0c010b41ee97c000413d2001ac10011a0b41ab98c000412841014100410010021a41a08ac000412f41" + "42003703b0010240200041f0006a4108200041b0016a22014120100a220341004e0440418296c000411c2003ad1001" + "1a200041186a20012003101d419e96c00041152000280218200028021c410110021a0c010b41b396c00041392003ac" + "10011a0b41ec96c00041244183803c100bac10011a0240200041f0006a4108100c220141004e0440419097c000411c" + "2001ad10011a0c010b41ac97c000413d2001ac10011a0b41e997c000412841014100410010021a41a08ac000412f41" "014100410010021a200041b0016a2203101a200041f0006a22012003101b200042003703a801200042003703a00120" "00420037039801200042003703900102400240024002400240200120004190016a2203102022014120460440200341" "204100100d220441004a044041cf8ac00041232004ad10011a200042003703302004200041306a2201410810212203" "41004c0d022003410846044041f28ac000412a420810011a419c8bc000412e20014108410110021a0c060b41ca8bc0" "00412e2003ad10011a200041106a200041306a2003101c41f88bc000411620002802102000280214410110021a0c05" - "0b41b08ec000413c2004ac10011a200042003703c801200042003703c001200042003703b801200042003703b00141" - "01200041b0016a4120102122014100480d020c030b418491c000412e2001ac10011a41ef7c21020c050b418e8cc000" - "412b2003ac10011a0c020b41ec8ec00041c1002001ac10011a0b20004100360049200041013a00482000410036004c" - "4101200041c8006a200041b0016a10222201410048044041ad8fc00041352001ac10011a0b41011023220141004804" - "4041e28fc00041322001ac10011a0b4101200041c8006a102422014100480440419490c00041392001ac10011a0b41" - "cd90c000413741014100410010021a0c010b20004100360049200041013a00482000410036004c200042003703c801" - "200042003703c001200042003703b801200042003703b00102402004200041c8006a200041b0016a22011022220341" - "004e044041b98cc000411b2003ad10011a200041086a20012003101d41d48cc00041142000280208200028020c4101" - "10021a0c010b41e88cc00041312003ac10011a0b41998dc000412320041023ac10011a02402004200041c8006a1024" - "220141004e044041bc8dc000411b2001ad10011a0c010b41d78dc00041352001ac10011a0b418c8ec0004124410141" - "00410010021a0b41b291c000412f41014100410010021a200041b0016a2201101a200041306a22042001101b200042" - "00370360200042003703582000420037035020004200370348024002400240024002402004200041c8006a22031020" - "2201412046044041e191c000410f20034120410110021a200042003703880120004200370380012000420037037820" - "0042003703700240200441142004411441f091c0004109200041f0006a22014120100e220341004a04402000200120" - "03101d41f891c000411220002802002000280204410110021a0c010b418a92c000413c2003ac10011a0b2000420037" - "03a801200042003703a0012000420037039801200042003703900120004180808cc07e360268200041306a22034114" - "200041e8006a410420004190016a22064120100f22014120470d0141c692c000410e20064120410110021a20004200" - "3703c801200042003703c001200042003703b801200042003703b001200041808080d00236026c20034114200041ec" - "006a4104200041b0016a22044120101022014120470d0241d492c000410e20044120410110021a41e292c000412441" - "014100410010021a418b80c000412541014100410010021a2000420037038801200042003703800120004200370378" - "2000420037037041b080c0004117200041f0006a22034120101122014120470d0341c780c000410b41b080c0004117" - "410110021a41d280c000411120034120410110021a2004101a200041c8006a22072004101b200042003703a8012000" - "42003703a0012000420037039801200042003703900102404100200422026b410371220320026a220520024d0d0020" - "030440200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d00034020" - "0241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a000020" - "0241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b20054180" - "0220036b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b02402002200141" - "0371220120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b2001" - "41016b4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000" - "200241046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a2202" - "2003470d000b0b0240200741142006412020044180021012220141004a044041e380c00041102001ad10011a200141" - "81024f0d0641f380c000410920042001410110021a0c010b41fc80c000412e2001ac10011a0b41aa81c000411241bc" - "81c00041074101100222014100480d0541c381c000411d2001ad10011a41e081c0004111422a1001410048044041a7" - "82c000411a42a47b10011a41a47b21020c070b41f181c000411c420010011a41012102418d82c000411a4101410041" - "0010021a41f982c000412941014100410010021a41a283c000412810132201412846044041ca83c000412741a283c0" - "004128410110021a41f183c000411e41014100410010021a418799c000412841014100410010021a0c070b418f84c0" - "00411a2001ac10011a41c37a21020c060b41be93c000411d2001ac10011a418b7c21020c050b41a293c000411c2001" - "ac10011a41897c21020c040b418693c000411c2001ac10011a41887c21020c030b41d782c00041222001ac10011a41" - "a77b21020c020b000b41c182c00041162001ac10011a41a57b21020b200041b0036a240020020b0d00200020012002" - "411410151a0b0c00200041142001412010160b0e002000418280182001200210180b0e002000200141082002412010" - "190b0a0020004183803c10140b0a0020002001410810170b0bb9190100418080c0000baf196572726f725f636f6465" - "3d2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f6e73202d2d2d48656c6c6f2c205852" - "504c205741534d20776f726c6421496e70757420646174613a5348413531322068616c6620686173683a4e46542064" - "617461206c656e6774683a4e465420646174613a494e464f3a206765745f6e6674206661696c656420286578706563" - "746564202d206e6f2073756368204e4654293a54657374207472616365206d6573736167657061796c6f6164547261" - "63652066756e6374696f6e206279746573207772697474656e3a54657374206e756d62657220747261636554726163" - "655f6e756d2066756e6374696f6e20737563636565646564535543434553533a205574696c6974792066756e637469" - "6f6e734552524f523a2074726163655f6e756d2829206661696c65643a4552524f523a207472616365282920666169" - "6c65643a4552524f523a20636f6d707574655f7368613531325f68616c66206661696c65643a2d2d2d204361746567" - "6f727920373a2044617461205570646174652046756e6374696f6e73202d2d2d55706461746564206c656467657220" - "656e74727920646174612066726f6d205741534d20746573745375636365737366756c6c792075706461746564206c" - "656467657220656e74727920776974683a535543434553533a2044617461207570646174652066756e6374696f6e73" - "4552524f523a207570646174655f64617461206661696c65643a2d2d2d2043617465676f727920313a204c65646765" - "72204865616465722046756e6374696f6e73202d2d2d4c65646765722073657175656e6365206e756d6265723a5061" - "72656e74206c65646765722074696d653a506172656e74206c656467657220686173683a535543434553533a204c65" - "64676572206865616465722066756e6374696f6e734552524f523a206765745f706172656e745f6c65646765725f68" - "6173682077726f6e67206c656e6774683a4552524f523a206765745f706172656e745f6c65646765725f74696d6520" - "6661696c65643a4552524f523a206765745f6c65646765725f73716e206661696c65643a2d2d2d2043617465676f72" - "7920323a205472616e73616374696f6e20446174612046756e6374696f6e73202d2d2d5472616e73616374696f6e20" - "4163636f756e743a5472616e73616374696f6e20466565206c656e6774683a5472616e73616374696f6e2046656520" - "2873657269616c697a65642058525020616d6f756e74293a5472616e73616374696f6e2053657175656e63653a4e65" - "73746564206669656c64206c656e6774683a4e6573746564206669656c643a494e464f3a206765745f74785f6e6573" - "7465645f6669656c64206e6f74206170706c696361626c653a5369676e657273206172726179206c656e6774683a4d" - "656d6f73206172726179206c656e6774683a4e6573746564206172726179206c656e6774683a494e464f3a20676574" - "5f74785f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a205472" - "616e73616374696f6e20646174612066756e6374696f6e734552524f523a206765745f74785f6669656c6428536571" - "75656e6365292077726f6e67206c656e6774683a4552524f523a206765745f74785f6669656c642846656529207772" - "6f6e67206c656e67746820286578706563746564203820627974657320666f7220585250293a4552524f523a206765" - "745f74785f6669656c64284163636f756e74292077726f6e67206c656e6774683a2d2d2d2043617465676f72792034" - "3a20416e79204c6564676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c792063" - "6163686564206f626a65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e67" - "7468202858525020616d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a" - "65642058525020616d6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f" - "6e2d58525020616d6f756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206765745f6c" - "65646765725f6f626a5f6669656c642842616c616e636529206661696c65643a436163686564206e65737465642066" - "69656c64206c656e6774683a436163686564206e6573746564206669656c643a494e464f3a206765745f6c65646765" - "725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a436163686564206f626a656374" - "205369676e657273206172726179206c656e6774683a436163686564206e6573746564206172726179206c656e6774" - "683a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f7420617070" - "6c696361626c653a535543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e73494e46" - "4f3a2063616368655f6c65646765725f6f626a206661696c6564202865787065637465642077697468207465737420" - "6669787475726573293a494e464f3a206765745f6c65646765725f6f626a5f6669656c64206661696c656420617320" - "657870656374656420286e6f20636163686564206f626a656374293a494e464f3a206765745f6c65646765725f6f62" - "6a5f6e65737465645f6669656c64206661696c65642061732065787065637465643a494e464f3a206765745f6c6564" - "6765725f6f626a5f61727261795f6c656e206661696c65642061732065787065637465643a494e464f3a206765745f" - "6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206661696c65642061732065787065637465643a" - "535543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e732028696e74657266616365" - "20746573746564294552524f523a206163636f756e74726f6f745f6964206661696c656420666f722063616368696e" - "6720746573743a2d2d2d2043617465676f727920353a204b65796c65742047656e65726174696f6e2046756e637469" - "6f6e73202d2d2d4163636f756e74206b65796c65743a546573745479706543726564656e7469616c206b65796c6574" - "3a494e464f3a2063726564656e7469616c5f6b65796c6574206661696c656420286578706563746564202d20696e74" - "657266616365206973737565293a457363726f77206b65796c65743a4f7261636c65206b65796c65743a5355434345" - "53533a204b65796c65742067656e65726174696f6e2066756e6374696f6e734552524f523a206f7261636c655f6b65" - "796c6574206661696c65643a4552524f523a20657363726f775f6b65796c6574206661696c65643a4552524f523a20" - "6163636f756e74726f6f745f6964206661696c65643a2d2d2d2043617465676f727920333a2043757272656e74204c" - "6564676572204f626a6563742046756e6374696f6e73202d2d2d43757272656e74206f626a6563742062616c616e63" - "65206c656e677468202858525020616d6f756e74293a43757272656e74206f626a6563742062616c616e6365202873" - "657269616c697a65642058525020616d6f756e74293a43757272656e74206f626a6563742062616c616e6365206c65" - "6e67746820286e6f6e2d58525020616d6f756e74293a43757272656e74206f626a6563742062616c616e63653a494e" - "464f3a206765745f63757272656e745f6c65646765725f6f626a5f6669656c642842616c616e636529206661696c65" - "6420286d6179206265206578706563746564293a43757272656e74206c6564676572206f626a656374206163636f75" - "6e743a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6669656c64284163636f756e742920" - "6661696c65643a43757272656e74206e6573746564206669656c64206c656e6774683a43757272656e74206e657374" - "6564206669656c643a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669" - "656c64206e6f74206170706c696361626c653a43757272656e74206f626a656374205369676e657273206172726179" - "206c656e6774683a43757272656e74206e6573746564206172726179206c656e6774683a494e464f3a206765745f63" - "757272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f74206170706c69636162" - "6c653a535543434553533a2043757272656e74206c6564676572206f626a6563742066756e6374696f6e733d3d3d20" - "484f53542046554e4354494f4e532054455354203d3d3d54657374696e6720323620686f73742066756e6374696f6e" - "73535543434553533a20416c6c20686f73742066756e6374696f6e2074657374732070617373656421004d0970726f" - "64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39" - "352e30202835393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f" - "6d757461626c652d676c6f62616c732b087369676e2d657874"; + "0b41978ec00041342004ac10011a200042003703c801200042003703c001200042003703b801200042003703b00141" + "01200041b0016a4120102122014100480d020c030b41c290c000412e2001ac10011a41ef7c21020c050b418e8cc000" + "411f2003ac10011a0c020b41cb8ec00041352001ac10011a0b20004100360049200041013a00482000410036004c41" + "01200041c8006a200041b0016a10222201410048044041808fc00041282001ac10011a0b4101102322014100480440" + "41a88fc000412a2001ac10011a0b4101200041c8006a10242201410048044041d28fc00041392001ac10011a0b418b" + "90c000413741014100410010021a0c010b20004100360049200041013a00482000410036004c200042003703c80120" + "0042003703c001200042003703b801200042003703b00102402004200041c8006a200041b0016a2201102222034100" + "4e044041ad8cc000411b2003ad10011a200041086a20012003101d41c88cc00041142000280208200028020c410110" + "021a0c010b41dc8cc00041242003ac10011a0b41808dc000412320041023ac10011a02402004200041c8006a102422" + "0141004e044041a38dc000411b2001ad10011a0c010b41be8dc00041352001ac10011a0b41f38dc000412441014100" + "410010021a0b41f090c000412f41014100410010021a200041b0016a2201101a200041306a22042001101b20004200" + "370360200042003703582000420037035020004200370348024002400240024002402004200041c8006a2203102022" + "014120460440419f91c000410f20034120410110021a20004200370388012000420037038001200042003703782000" + "42003703700240200441142004411441ae91c0004109200041f0006a22014120100e220341004a0440200020012003" + "101d41b691c000411220002802002000280204410110021a0c010b41c891c000413c2003ac10011a0b200042003703" + "a801200042003703a0012000420037039801200042003703900120004180808cc07e360268200041306a2203411420" + "0041e8006a410420004190016a22064120100f22014120470d01418492c000410e20064120410110021a2000420037" + "03c801200042003703c001200042003703b801200042003703b001200041808080d00236026c20034114200041ec00" + "6a4104200041b0016a22044120101022014120470d02419292c000410e20044120410110021a41a092c00041244101" + "4100410010021a418b80c000412541014100410010021a200042003703880120004200370380012000420037037820" + "00420037037041b080c0004117200041f0006a22034120101122014120470d0341c780c000410b41b080c000411741" + "0110021a41d280c000411120034120410110021a2004101a200041c8006a22072004101b200042003703a801200042" + "003703a0012000420037039801200042003703900102404100200422026b410371220320026a220520024d0d002003" + "0440200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d0003402002" + "41003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a00002002" + "41036a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b2005418002" + "20036b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b0240200220014103" + "71220120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b200141" + "016b4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a000020" + "0241046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a220220" + "03470d000b0b0240200741142006412020044180021012220141004a044041e380c00041102001ad10011a20014181" + "024f0d0641f380c000410920042001410110021a0c010b41fc80c000412e2001ac10011a0b41aa81c000411241bc81" + "c00041074101100222014100480d0541c381c000411d2001ad10011a41e081c0004111422a1001410048044041a782" + "c000411a42a47b10011a41a47b21020c070b41f181c000411c420010011a41012102418d82c000411a410141004100" + "10021a41f982c000412941014100410010021a41a283c000412810132201412846044041ca83c000412741a283c000" + "4128410110021a41f183c000411e41014100410010021a41c598c000412841014100410010021a0c070b418f84c000" + "411a2001ac10011a41c37a21020c060b41fc92c000411d2001ac10011a418b7c21020c050b41e092c000411c2001ac" + "10011a41897c21020c040b41c492c000411c2001ac10011a41887c21020c030b41d782c00041222001ac10011a41a7" + "7b21020c020b000b41c182c00041162001ac10011a41a57b21020b200041b0036a240020020b0d0020002001200241" + "1410151a0b0c00200041142001412010160b0e002000418280182001200210180b0e00200020014108200241201019" + "0b0a0020004183803c10140b0a0020002001410810170b0bf7180100418080c0000bed186572726f725f636f64653d" + "2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f6e73202d2d2d48656c6c6f2c20585250" + "4c205741534d20776f726c6421496e70757420646174613a5348413531322068616c6620686173683a4e4654206461" + "7461206c656e6774683a4e465420646174613a494e464f3a206765745f6e6674206661696c65642028657870656374" + "6564202d206e6f2073756368204e4654293a54657374207472616365206d6573736167657061796c6f616454726163" + "652066756e6374696f6e206279746573207772697474656e3a54657374206e756d6265722074726163655472616365" + "5f6e756d2066756e6374696f6e20737563636565646564535543434553533a205574696c6974792066756e6374696f" + "6e734552524f523a2074726163655f6e756d2829206661696c65643a4552524f523a2074726163652829206661696c" + "65643a4552524f523a20636f6d707574655f7368613531325f68616c66206661696c65643a2d2d2d2043617465676f" + "727920373a2044617461205570646174652046756e6374696f6e73202d2d2d55706461746564206c65646765722065" + "6e74727920646174612066726f6d205741534d20746573745375636365737366756c6c792075706461746564206c65" + "6467657220656e74727920776974683a535543434553533a2044617461207570646174652066756e6374696f6e7345" + "52524f523a207570646174655f64617461206661696c65643a2d2d2d2043617465676f727920313a204c6564676572" + "204865616465722046756e6374696f6e73202d2d2d4c65646765722073657175656e6365206e756d6265723a506172" + "656e74206c65646765722074696d653a506172656e74206c656467657220686173683a535543434553533a204c6564" + "676572206865616465722066756e6374696f6e734552524f523a206765745f706172656e745f6c65646765725f6861" + "73682077726f6e67206c656e6774683a4552524f523a206765745f706172656e745f6c65646765725f74696d652066" + "61696c65643a4552524f523a206765745f6c65646765725f73716e206661696c65643a2d2d2d2043617465676f7279" + "20323a205472616e73616374696f6e20446174612046756e6374696f6e73202d2d2d5472616e73616374696f6e2041" + "63636f756e743a5472616e73616374696f6e20466565206c656e6774683a5472616e73616374696f6e204665652028" + "73657269616c697a65642058525020616d6f756e74293a5472616e73616374696f6e2053657175656e63653a4e6573" + "746564206669656c64206c656e6774683a4e6573746564206669656c643a494e464f3a206765745f74785f6e657374" + "65645f6669656c64206e6f74206170706c696361626c653a5369676e657273206172726179206c656e6774683a4d65" + "6d6f73206172726179206c656e6774683a4e6573746564206172726179206c656e6774683a494e464f3a206765745f" + "74785f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a20547261" + "6e73616374696f6e20646174612066756e6374696f6e734552524f523a206765745f74785f6669656c642853657175" + "656e6365292077726f6e67206c656e6774683a4552524f523a206765745f74785f6669656c6428466565292077726f" + "6e67206c656e67746820286578706563746564203820627974657320666f7220585250293a4552524f523a20676574" + "5f74785f6669656c64284163636f756e74292077726f6e67206c656e6774683a2d2d2d2043617465676f727920343a" + "20416e79204c6564676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c79206361" + "63686564206f626a65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e6774" + "68202858525020616d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a65" + "642058525020616d6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f6e" + "2d58525020616d6f756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206c655f666965" + "6c642842616c616e636529206661696c65643a436163686564206e6573746564206669656c64206c656e6774683a43" + "6163686564206e6573746564206669656c643a494e464f3a206c655f696e6e65725f6669656c64206e6f7420617070" + "6c696361626c653a436163686564206f626a656374205369676e657273206172726179206c656e6774683a43616368" + "6564206e6573746564206172726179206c656e6774683a494e464f3a206765745f6c65646765725f6f626a5f6e6573" + "7465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a20416e79206c65646765" + "72206f626a6563742066756e6374696f6e73494e464f3a2063616368655f6c65206661696c65642028657870656374" + "656420776974682074657374206669787475726573293a494e464f3a206c655f6669656c64206661696c6564206173" + "20657870656374656420286e6f20636163686564206f626a656374293a494e464f3a206c655f696e6e65725f666965" + "6c64206661696c65642061732065787065637465643a494e464f3a206c655f696e6e65725f6172725f6c656e206661" + "696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f6172" + "7261795f6c656e206661696c65642061732065787065637465643a535543434553533a20416e79206c656467657220" + "6f626a6563742066756e6374696f6e732028696e7465726661636520746573746564294552524f523a206163636f75" + "6e74726f6f745f6964206661696c656420666f722063616368696e6720746573743a2d2d2d2043617465676f727920" + "353a204b65796c65742047656e65726174696f6e2046756e6374696f6e73202d2d2d4163636f756e74206b65796c65" + "743a546573745479706543726564656e7469616c206b65796c65743a494e464f3a2063726564656e7469616c5f6b65" + "796c6574206661696c656420286578706563746564202d20696e74657266616365206973737565293a457363726f77" + "206b65796c65743a4f7261636c65206b65796c65743a535543434553533a204b65796c65742067656e65726174696f" + "6e2066756e6374696f6e734552524f523a206f7261636c655f6b65796c6574206661696c65643a4552524f523a2065" + "7363726f775f6b65796c6574206661696c65643a4552524f523a206163636f756e74726f6f745f6964206661696c65" + "643a2d2d2d2043617465676f727920333a2043757272656e74204c6564676572204f626a6563742046756e6374696f" + "6e73202d2d2d43757272656e74206f626a6563742062616c616e6365206c656e677468202858525020616d6f756e74" + "293a43757272656e74206f626a6563742062616c616e6365202873657269616c697a65642058525020616d6f756e74" + "293a43757272656e74206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f756e74" + "293a43757272656e74206f626a6563742062616c616e63653a494e464f3a206765745f63757272656e745f6c656467" + "65725f6f626a5f6669656c642842616c616e636529206661696c656420286d6179206265206578706563746564293a" + "43757272656e74206c6564676572206f626a656374206163636f756e743a494e464f3a206765745f63757272656e74" + "5f6c65646765725f6f626a5f6669656c64284163636f756e7429206661696c65643a43757272656e74206e65737465" + "64206669656c64206c656e6774683a43757272656e74206e6573746564206669656c643a494e464f3a206765745f63" + "757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a43" + "757272656e74206f626a656374205369676e657273206172726179206c656e6774683a43757272656e74206e657374" + "6564206172726179206c656e6774683a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e65" + "737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a2043757272656e7420" + "6c6564676572206f626a6563742066756e6374696f6e733d3d3d20484f53542046554e4354494f4e53205445535420" + "3d3d3d54657374696e6720323620686f73742066756e6374696f6e73535543434553533a20416c6c20686f73742066" + "756e6374696f6e2074657374732070617373656421004d0970726f64756365727302086c616e677561676501045275" + "7374000c70726f6365737365642d6279010572757374631d312e39352e30202835393830373631366520323032362d" + "30342d313429002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b08736967" + "6e2d657874"; extern std::string const kDeepRecursionHex = - "0061736d010000000105016000017f030201000608017f0141c0843d0b070a010666696e69736800000a1601140023" - "0045044041010f0b230041016b240010000b"; + "0061736d010000000105016000017f030201000608017f0141c0843d0b0711010d657363726f775f66696e69736800" + "000a16011400230045044041010f0b230041016b240010000b"; extern std::string const kAllKeyletsWasmHex = "0061736d0100000001500a60067f7f7f7f7f7f017f60047f7f7f7f017f60087f7f7f7f7f7f7f7f017f60047f7f7f7f" @@ -633,346 +641,353 @@ extern std::string const kCodecovTestsWasmHex = extern std::string const kFloatTestsWasmHex = "0061736d0100000001490960057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60067f7f7f7f7f7f017f60047e7f7f7f" - "017f60057e7f7f7f7f017f60047f7f7f7f017f60037f7f7e017f60037f7f7f006000017f02fa021008686f73745f6c" + "017f60057e7f7f7f7f017f60047f7f7f7f017f60037f7f7e017f60037f7f7f006000017f02ea021008686f73745f6c" "6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e74000308686f73745f6c69620f66" "6c6f61745f66726f6d5f75696e74000003656e7613666c6f61745f66726f6d5f6d616e745f657870000408686f7374" - "5f6c69620d666c6f61745f636f6d70617265000508686f73745f6c696209666c6f61745f616464000108686f73745f" - "6c69620e666c6f61745f7375627472616374000108686f73745f6c69620e666c6f61745f6d756c7469706c79000108" - "686f73745f6c69620c666c6f61745f646976696465000108686f73745f6c696209666c6f61745f706f77000208686f" - "73745f6c69620974726163655f6e756d000608686f73745f6c69620a666c6f61745f726f6f74000203656e760c666c" - "6f61745f746f5f696e74000003656e7611666c6f61745f746f5f6d616e745f657870000203656e7613666c6f61745f" - "66726f6d5f7374616d6f756e74000003656e7613666c6f61745f66726f6d5f73746e756d6265720000030302070805" - "030100110619037f01418080c0000b7f00418d99c0000b7f00419099c0000b072e04066d656d6f727902000666696e" - "69736800110a5f5f646174615f656e6403010b5f5f686561705f6261736503020aec20021f00200020014101410041" - "0010001a418080c00041022002410c410110001a0bc920020c7f017e230041f0006b2200240041f28ac000411d4101" - "4100410010001a20004100360268200042003703600240428ce000200041e0006a2202410c410010012201410c4604" - "40418f8bc00041172002101041a68bc000411e2002410c410110001a0c010b41c48bc000411e41014100410010001a" - "0b2000428ce0003703500240200041d0006a4108200041e0006a2202410c41001002410c4604402001410c46210741" - "e28bc0004117200210100c010b41f98bc000411e41014100410010001a0b024042fb004102200041e0006a2201410c" - "41001003410c46044041978cc0004121200110100c010b41b88cc000412841014100410010001a410021070b41e08c" - "c0004115419980c000101041f58cc000411641b780c000101041d688c000411b41014100410010001a200041003602" - "682000420037036002404201200041e0006a2202410c410010012201410c46044041f188c000410f200210100c010b" - "418089c000411641014100410010001a0b027f200041e0006a410c419980c000410c1004450440419689c000411b41" - "014100410010001a2001410c460c010b41b189c000412341014100410010001a41000b21080240200041e0006a410c" - "41b780c000410c1004410146044041d489c000412341014100410010001a0c010b4100210841f789c000412c410141" - "00410010001a0b024041b780c000410c200041e0006a410c1004410246044041a38ac000412341014100410010001a" - "0c010b4100210841c68ac000412c41014100410010001a0b419d92c000412041014100410010001a200041a180c000" - "2800003602582000419980c000290000370350410921030340200041d0006a2201410c419980c000410c2001410c41" - "0010051a200341016b22030d000b2000410036026820004200370360420a200041e0006a410c41001001410c462209" - "45044041bd92c000411741014100410010001a0b0240200041e0006a410c200041d0006a410c100445044041d492c0" - "00411441014100410010001a0c010b4100210941e892c000411641014100410010001a0b410b21030340200041d000" - "6a2201410c419980c000410c2001410c410010061a200341016b22030d000b02402001410c41b780c000410c100445" - "044041fe92c000411941014100410010001a0c010b41002109419793c000411b41014100410010001a0b418698c000" - "412341014100410010001a2000410036021020004200370308420a200041086a410c410010011a200041a180c00028" - "00003602202000419980c000290000370318410621030340200041186a2201410c200041086a410c2001410c410010" - "071a200341016b22030d000b200041003602582000420037035042c0843d200041d0006a2202410c410010011a0240" - "2002410c2001410c1004220145044041a998c000411941014100410010001a0c010b41c298c000411b410141004100" - "10001a0b200145210a410721030340200041186a2201410c200041086a410c2001410c410010081a200341016b2203" - "0d000b20004100360268200042003703604201417f200041e0006a2202410c410010031a02402001410c2002410c10" - "0445044041dd98c000411741014100410010001a0c010b41f498c000411941014100410010001a4100210a0b418280" - "c000411741014100410010001a2000410036022020004200370318419980c000410c4103200041186a2202410c4100" - "10091a41a580c00041122002101041b780c000410c41062002410c410010091a41c380c00041182002101020004100" - "360258200042003703504209200041d0006a2201410c410010011a2001410c41022002410c410010091a41db80c000" - "4114200210102001410c41002002410c410010091a41ef80c000411720021010200041003602682000420037036042" - "00200041e0006a2203410c410010011a2003410c41022002410c410010091a418681c000411420021010419a81c000" - "41382003410c41002002410c41001009ac100a1a41d281c000411841014100410010001a2000410036022020004200" - "37031842092002410c410010011a20004100360258200042003703502002410c41022001410c4100100b1a41ea81c0" - "004112200110102002410c41032001410c4100100b1a41fc81c0004112200110102000410036026820004200370360" - "42c0843d2003410c410010011a2003410c41032001410c4100100b1a418e82c0004118200110102003410c41062001" - "410c4100100b1a41a682c000411c2001101041c282c000411a41014100410010001a20004100360258200042003703" - "502000410036026820004200370360420a2003410c410010011a419980c000410c2003410c2001410c410010081a41" - "dc82c000411920011010419980c000410c2001410c2001410c410010081a41f582c000410f2001101002402003410c" - "2001410c1004220b450440418483c000411441014100410010001a0c010b419883c000411641014100410010001a0b" - "4100210141ae83c000411a41014100410010001a200042003703080240419980c000410c200041086a41084100100c" - "220241084604402000290308220c42015104404101210141c883c000411741014100410010001a0c020b41df83c000" - "411941014100410010001a41f883c0004108200c100a1a0c010b418084c000412441014100410010001a41a484c000" - "410f2002ac100a1a0b41002103024041b780c000410c200041086a41084100100c220241084604402000290308220c" - "427f51044041b384c000411841014100410010001a200121030c020b41cb84c000411a41014100410010001a41f883" - "c0004108200c100a1a0c010b41e584c000412541014100410010001a41a484c000410f2002ac100a1a0b4100210120" - "0041003602202000420037031842ffffffffffffffffff00200041186a2202410c410010011a02402002410c200041" - "086a41084100100c220241084604402000290308220c42ffffffffffffffffff00510440418a85c000411e41014100" - "410010001a200321010c020b41a885c000412041014100410010001a41c885c000410d42ffffffffffffffffff0010" - "0a1a41f883c0004108200c100a1a0c010b41d585c000412b41014100410010001a41a484c000410f2002ac100a1a0b" - "4100210220004100360258200042003703504200200041d0006a2203410c410010011a02402003410c200041086a41" - "084100100c220341084604402000290308220c500440418086c000411741014100410010001a200121020c020b4197" - "86c000411941014100410010001a41f883c0004108200c100a1a0c010b41b086c000412441014100410010001a41a4" - "84c000410f2003ac100a1a0b4100210320004100360268200042003703604201417f200041e0006a2201410c410010" - "031a02402001410c200041086a41084100100c220141084604402000290308220c50044041d486c000412541014100" - "410010001a200221030c020b41f986c000412741014100410010001a41f883c0004108200c100a1a0c010b41a087c0" - "00413241014100410010001a41a484c000410f2001ac100a1a0b0240200041e0006a410c200041086a41084101100c" - "220141084604402000290308220c50044041d287c000412741014100410010001a0c020b4100210341f987c0004129" - "41014100410010001a41f883c0004108200c100a1a0c010b4100210341a288c000413441014100410010001a41a484" - "c000410f2001ac100a1a0b41002101418b8dc000411f41014100410010001a20004200370328200041003602340240" - "419980c000410c200041286a4108200041346a4104100d2202410c46044020002802342202416e462000290328220c" - "42808090bbbad6adf00d517145044041c68dc000411e41014100410010001a41e48dc000412f200c100a1a41938ec0" - "00411f2002ac100a1a0c020b4101210141aa8dc000411c41014100410010001a0c010b41b28ec00041294101410041" - "0010001a41a484c000410f2002ac100a1a0b200042003703384100210220004100360244024041b780c000410c2000" - "41386a4108200041c4006a4104100d2204410c46044020002802442204416e462000290338220c428080f0c4c5a9d2" - "8f72517145044041f88ec000411f41014100410010001a41978fc0004130200c100a1a41938ec000411f2004ac100a" - "1a0c020b41db8ec000411d41014100410010001a200121020c010b41c78fc000412a41014100410010001a41a484c0" - "00410f2004ac100a1a0b410021012000410036025820004200370350420a200041d0006a2204410c410010011a2000" - "42003703082000410036024802402004410c200041086a4108200041c8006a4104100d2204410c4604402000280248" - "2204416f462000290308220c42808090bbbad6adf00d5171450440418e90c000411f41014100410010001a41e48dc0" - "00412f200c100a1a41ad90c000411f2004ac100a1a0c020b41f18fc000411d41014100410010001a200221010c010b" - "41cc90c000412a41014100410010001a41a484c000410f2004ac100a1a0b4100210220004100360268200042003703" - "604200200041e0006a2204410c410010011a200042003703182000410036024c02402004410c200041186a41082000" - "41cc006a4104100d2204410c4604402000290318220c50200028024c22044180808080784671450440419291c00041" - "1e41014100410010001a41b091c000411d200c100a1a41cd91c00041272004ac100a1a0c020b41f690c000411c4101" - "4100410010001a200121020c010b41f491c000412941014100410010001a41a484c000410f2004ac100a1a0b410021" - "0141b293c000412141014100410010001a200042c0808080d0a0fdf000370018200041003602682000420037036002" - "400240200041186a4108200041e0006a2205410c4100100e2204410c46044041d393c0004122200510102000420037" - "03502005410c200041d0006a41084100100c22044108470d012000290350220c4280c2d72f5104404101210141f593" - "c000411d41014100410010001a0c030b419294c000411f41014100410010001a41b194c000411c200c100a1a0c020b" - "418195c000411f41014100410010001a41a095c00041102004ac100a1a0c010b41cd94c00041344101410041001000" - "1a41a484c000410f2004ac100a1a0b4100210441b095c000412141014100410010001a200041ffffff8f7f36005820" - "004281eceedce494ccf9c000370050200041003602682000420037036002400240200041d0006a410c200041e0006a" - "2206410c4100100f2205410c46044041d195c000411c20061010200042003703182006410c200041186a4108410010" - "0c22054108470d012000290318220c42fb005104404101210441ed95c000411b41014100410010001a0c030b418896" - "c000411d41014100410010001a41a596c0004116200c100a1a0c020b41ed96c000411d41014100410010001a41a095" - "c00041102005ac100a1a0c010b41bb96c000413241014100410010001a41a484c000410f2005ac100a1a0b41002105" - "0240419980c000410c200041e0006a2206410c4100100f410c460440418a97c000411a200610102006410c419980c0" - "00410c100445044041a497c000412041014100410010001a200421050c020b41c497c000412241014100410010001a" - "0c010b41e697c000412041014100410010001a0b200041f0006a2400200b452007200871200971200a712003712002" - "71200171200571710b0b97190100418080c0000b8d1920200a24242420746573745f666c6f61745f706f7720242424" - "0de0b6b3a7640000ffffffee2020666c6f61742063756265206f6620313af21f494c589c0000ffffffee2020666c6f" - "61742036746820706f776572206f66202d313a2020666c6f617420737175617265206f6620393a2020666c6f617420" - "30746820706f776572206f6620393a2020666c6f617420737175617265206f6620303a2020666c6f61742030746820" - "706f776572206f6620302028657870656374696e6720494e56414c49445f504152414d53206572726f72293a0a2424" - "2420746573745f666c6f61745f726f6f74202424242020666c6f61742073717274206f6620393a2020666c6f617420" - "63627274206f6620393a2020666c6f61742063627274206f6620313030303030303a2020666c6f6174203674682072" - "6f6f74206f6620313030303030303a0a24242420746573745f666c6f61745f696e76657274202424242020696e7665" - "7274206120666c6f61742066726f6d2031303a2020696e7665727420616761696e3a2020696e766572742074776963" - "653a20676f6f642020696e766572742074776963653a206661696c65640a24242420746573745f666c6f61745f746f" - "5f696e74202424242020666c6f61745f746f5f696e742831293a20676f6f642020666c6f61745f746f5f696e742831" - "293a206661696c656420202020676f743a2020666c6f61745f746f5f696e742831293a206661696c65642077697468" - "206572726f72202020206572726f7220636f64653a2020666c6f61745f746f5f696e74282d31293a20676f6f642020" - "666c6f61745f746f5f696e74282d31293a206661696c65642020666c6f61745f746f5f696e74282d31293a20666169" - "6c65642077697468206572726f722020666c6f61745f746f5f696e74286936343a3a4d4158293a20676f6f64202066" - "6c6f61745f746f5f696e74286936343a3a4d4158293a206661696c65642020202065787065637465643a2020666c6f" - "61745f746f5f696e74286936343a3a4d4158293a206661696c65642077697468206572726f722020666c6f61745f74" - "6f5f696e742830293a20676f6f642020666c6f61745f746f5f696e742830293a206661696c65642020666c6f61745f" - "746f5f696e742830293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c" - "20746f5f6e656172657374293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f5f6e6561726573" - "74293a206661696c65642020666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a206661696c" - "65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a" - "20676f6f642020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c656420" - "20666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c656420776974682065" - "72726f720a24242420746573745f666c6f61745f636f6d70617265202424242020666c6f61742066726f6d20313a20" - "20666c6f61742066726f6d20313a206661696c65642020666c6f61742066726f6d2031203d3d20464c4f41545f4f4e" - "452020666c6f61742066726f6d203120213d20464c4f41545f4f4e452c206661696c65642020666c6f61742066726f" - "6d2031203e20464c4f41545f4e454741544956455f4f4e452020666c6f61742066726f6d203120213e20464c4f4154" - "5f4e454741544956455f4f4e452c206661696c65642020464c4f41545f4e454741544956455f4f4e45203c20666c6f" - "61742066726f6d20312020464c4f41545f4e454741544956455f4f4e4520213c20666c6f61742066726f6d20312c20" - "6661696c65640a24242420746573745f666c6f61745f66726f6d5f7761736d202424242020666c6f61742066726f6d" - "206936342031323330303a2020666c6f61742066726f6d20693634203132333030206173204845583a2020666c6f61" - "742066726f6d206936342031323330303a206661696c65642020666c6f61742066726f6d207536342031323330303a" - "2020666c6f61742066726f6d207536342031323330303a206661696c65642020666c6f61742066726f6d2065787020" - "322c206d616e7469737361203132333a2020666c6f61742066726f6d2065787020322c206d616e7469737361203132" - "333a206661696c65642020666c6f61742066726f6d20636f6e737420313a2020666c6f61742066726f6d20636f6e73" - "74202d313a0a24242420746573745f666c6f61745f746f5f6d616e745f657870202424242020666c6f61745f746f5f" - "6d616e745f6578702831293a20676f6f642020666c6f61745f746f5f6d616e745f6578702831293a206661696c6564" - "202020206578706563746564206d616e746973736120313030303030303030303030303030303030302c20676f743a" - "202020206578706563746564206578706f6e656e74202d31382c20676f743a2020666c6f61745f746f5f6d616e745f" - "6578702831293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f657870282d31" - "293a20676f6f642020666c6f61745f746f5f6d616e745f657870282d31293a206661696c6564202020206578706563" - "746564206d616e7469737361202d313030303030303030303030303030303030302c20676f743a2020666c6f61745f" - "746f5f6d616e745f657870282d31293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d61" - "6e745f657870283130293a20676f6f642020666c6f61745f746f5f6d616e745f657870283130293a206661696c6564" - "202020206578706563746564206578706f6e656e74202d31372c20676f743a2020666c6f61745f746f5f6d616e745f" - "657870283130293a206661696c65642077697468206572726f722020666c6f61745f746f5f6d616e745f6578702830" - "293a20676f6f642020666c6f61745f746f5f6d616e745f6578702830293a206661696c656420202020657870656374" - "6564206d616e746973736120302c20676f743a202020206578706563746564206578706f6e656e74202d3231343734" - "38333634382c20676f743a2020666c6f61745f746f5f6d616e745f6578702830293a206661696c6564207769746820" - "6572726f720a24242420746573745f666c6f61745f6164645f7375627472616374202424242020666c6f6174206672" - "6f6d2031303a206661696c656420207265706561746564206164643a20676f6f642020726570656174656420616464" - "3a206661696c6564202072657065617465642073756274726163743a20676f6f642020726570656174656420737562" - "74726163743a206661696c65640a24242420746573745f666c6f61745f66726f6d5f7374616d6f756e742024242420" - "20666c6f61742066726f6d2058525020616d6f756e74202831303020585250293a202058525020616d6f756e742063" - "6f6e76657273696f6e3a20676f6f64202058525020616d6f756e7420636f6e76657273696f6e3a206661696c656420" - "2020206578706563746564203130303030303030302c20676f743a202058525020616d6f756e7420636f6e76657273" - "696f6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d205852" - "5020616d6f756e743a206661696c656420202020726573756c745f73697a653a0a24242420746573745f666c6f6174" - "5f66726f6d5f73746e756d626572202424242020666c6f61742066726f6d2053544e756d6265722028313233293a20" - "2053544e756d62657220636f6e76657273696f6e3a20676f6f64202053544e756d62657220636f6e76657273696f6e" - "3a206661696c6564202020206578706563746564203132332c20676f743a202053544e756d62657220636f6e766572" - "73696f6e3a206661696c6564202d20666c6f61745f746f5f696e74206572726f722020666c6f61742066726f6d2053" - "544e756d6265723a206661696c65642020666c6f61742066726f6d2053544e756d626572202831293a202053544e75" - "6d626572283129203d3d20464c4f41545f4f4e453a20676f6f64202053544e756d626572283129203d3d20464c4f41" - "545f4f4e453a206661696c65642020666c6f61742066726f6d2053544e756d6265722831293a206661696c65640a24" - "242420746573745f666c6f61745f6d756c7469706c795f6469766964652024242420207265706561746564206d756c" - "7469706c793a20676f6f6420207265706561746564206d756c7469706c793a206661696c6564202072657065617465" - "64206469766964653a20676f6f6420207265706561746564206469766964653a206661696c6564004d0970726f6475" - "6365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39352e" - "30202835393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f6d75" - "7461626c652d676c6f62616c732b087369676e2d657874"; + "5f6c696209666c6f61745f636d70000508686f73745f6c696209666c6f61745f616464000108686f73745f6c696209" + "666c6f61745f737562000108686f73745f6c69620a666c6f61745f6d756c74000108686f73745f6c696209666c6f61" + "745f646976000108686f73745f6c696209666c6f61745f706f77000208686f73745f6c69620974726163655f6e756d" + "000608686f73745f6c69620a666c6f61745f726f6f74000203656e760c666c6f61745f746f5f696e74000003656e76" + "11666c6f61745f746f5f6d616e745f657870000203656e7613666c6f61745f66726f6d5f7374616d6f756e74000003" + "656e7613666c6f61745f66726f6d5f73746e756d6265720000030302070805030100110619037f01418080c0000b7f" + "00418599c0000b7f00419099c0000b073504066d656d6f727902000d657363726f775f66696e69736800110a5f5f64" + "6174615f656e6403010b5f5f686561705f6261736503020aec20021f002000200141014100410010001a418080c000" + "41022002410c410110001a0bc920020c7f017e230041f0006b2200240041ee8ac000411d41014100410010001a2000" + "4100360268200042003703600240428ce000200041e0006a2202410c410010012201410c460440418b8bc000411720" + "02101041a28bc000411e2002410c410110001a0c010b41c08bc000411e41014100410010001a0b2000428ce0003703" + "500240200041d0006a4108200041e0006a2202410c41001002410c4604402001410c46210741de8bc0004117200210" + "100c010b41f58bc000411e41014100410010001a0b024042fb004102200041e0006a2201410c41001003410c460440" + "41938cc0004121200110100c010b41b48cc000412841014100410010001a410021070b41dc8cc000411541be80c000" + "101041f18cc0004116418881c0001010418280c000411741014100410010001a200041003602682000420037036002" + "404201200041e0006a2202410c410010012201410c460440419980c000410f200210100c010b41a880c00041164101" + "4100410010001a0b027f200041e0006a410c41be80c000410c100445044041ca80c000411b41014100410010001a20" + "01410c460c010b41e580c000412341014100410010001a41000b21080240200041e0006a410c418881c000410c1004" + "4101460440419481c000412341014100410010001a0c010b4100210841b781c000412c41014100410010001a0b0240" + "418881c000410c200041e0006a410c1004410246044041e381c000412341014100410010001a0c010b410021084186" + "82c000412c41014100410010001a0b419c93c000412041014100410010001a200041c680c000280000360258200041" + "be80c000290000370350410921030340200041d0006a2201410c41be80c000410c2001410c410010051a200341016b" + "22030d000b2000410036026820004200370360420a200041e0006a410c41001001410c46220945044041bc93c00041" + "1741014100410010001a0b0240200041e0006a410c200041d0006a410c100445044041d393c0004114410141004100" + "10001a0c010b4100210941e793c000411641014100410010001a0b410b21030340200041d0006a2201410c41be80c0" + "00410c2001410c410010061a200341016b22030d000b02402001410c418881c000410c100445044041fd93c0004119" + "41014100410010001a0c010b41002109419694c000411b41014100410010001a0b41878dc000411f41014100410010" + "001a2000410036021020004200370308420a200041086a410c410010011a200041c680c000280000360220200041be" + "80c000290000370318410621030340200041186a2201410c200041086a410c2001410c410010071a200341016b2203" + "0d000b200041003602582000420037035042c0843d200041d0006a2202410c410010011a02402002410c2001410c10" + "04220145044041a68dc000411941014100410010001a0c010b41bf8dc000411b41014100410010001a0b200145210a" + "410721030340200041186a2201410c200041086a410c2001410c410010081a200341016b22030d000b200041003602" + "68200042003703604201417f200041e0006a2202410c410010031a02402001410c2002410c100445044041da8dc000" + "411741014100410010001a0c010b41f18dc000411941014100410010001a4100210a0b41b282c00041174101410041" + "0010001a200041003602202000420037031841be80c000410c4103200041186a2202410c410010091a41c982c00041" + "1220021010418881c000410c41062002410c410010091a41db82c00041182002101020004100360258200042003703" + "504209200041d0006a2201410c410010011a2001410c41022002410c410010091a41f382c000411420021010200141" + "0c41002002410c410010091a418783c00041172002101020004100360268200042003703604200200041e0006a2203" + "410c410010011a2003410c41022002410c410010091a419e83c00041142002101041b283c00041382003410c410020" + "02410c41001009ac100a1a41ea83c000411841014100410010001a200041003602202000420037031842092002410c" + "410010011a20004100360258200042003703502002410c41022001410c4100100b1a418284c0004112200110102002" + "410c41032001410c4100100b1a419484c000411220011010200041003602682000420037036042c0843d2003410c41" + "0010011a2003410c41032001410c4100100b1a41a684c0004118200110102003410c41062001410c4100100b1a41be" + "84c000411c2001101041da84c000411a41014100410010001a20004100360258200042003703502000410036026820" + "004200370360420a2003410c410010011a41be80c000410c2003410c2001410c410010081a41f484c0004119200110" + "1041be80c000410c2001410c2001410c410010081a418d85c000410f2001101002402003410c2001410c1004220b45" + "0440419c85c000411441014100410010001a0c010b41b085c000411641014100410010001a0b4100210141c685c000" + "411a41014100410010001a20004200370308024041be80c000410c200041086a41084100100c220241084604402000" + "290308220c42015104404101210141e085c000411741014100410010001a0c020b41f785c000411941014100410010" + "001a419086c0004108200c100a1a0c010b419886c000412441014100410010001a41bc86c000410f2002ac100a1a0b" + "410021030240418881c000410c200041086a41084100100c220241084604402000290308220c427f51044041cb86c0" + "00411841014100410010001a200121030c020b41e386c000411a41014100410010001a419086c0004108200c100a1a" + "0c010b41fd86c000412541014100410010001a41bc86c000410f2002ac100a1a0b4100210120004100360220200042" + "0037031842ffffffffffffffffff00200041186a2202410c410010011a02402002410c200041086a41084100100c22" + "0241084604402000290308220c42ffffffffffffffffff0051044041a287c000411e41014100410010001a20032101" + "0c020b41c087c000412041014100410010001a41e087c000410d42ffffffffffffffffff00100a1a419086c0004108" + "200c100a1a0c010b41ed87c000412b41014100410010001a41bc86c000410f2002ac100a1a0b410021022000410036" + "0258200042003703504200200041d0006a2203410c410010011a02402003410c200041086a41084100100c22034108" + "4604402000290308220c500440419888c000411741014100410010001a200121020c020b41af88c000411941014100" + "410010001a419086c0004108200c100a1a0c010b41c888c000412441014100410010001a41bc86c000410f2003ac10" + "0a1a0b4100210320004100360268200042003703604201417f200041e0006a2201410c410010031a02402001410c20" + "0041086a41084100100c220141084604402000290308220c50044041ec88c000412541014100410010001a20022103" + "0c020b419189c000412741014100410010001a419086c0004108200c100a1a0c010b41b889c0004132410141004100" + "10001a41bc86c000410f2001ac100a1a0b0240200041e0006a410c200041086a41084101100c220141084604402000" + "290308220c50044041ea89c000412741014100410010001a0c020b4100210341918ac000412941014100410010001a" + "419086c0004108200c100a1a0c010b4100210341ba8ac000413441014100410010001a41bc86c000410f2001ac100a" + "1a0b41002101418a8ec000411f41014100410010001a2000420037032820004100360234024041be80c000410c2000" + "41286a4108200041346a4104100d2202410c46044020002802342202416e462000290328220c42808090bbbad6adf0" + "0d517145044041c58ec000411e41014100410010001a41e38ec000412f200c100a1a41928fc000411f2002ac100a1a" + "0c020b4101210141a98ec000411c41014100410010001a0c010b41b18fc000412941014100410010001a41bc86c000" + "410f2002ac100a1a0b2000420037033841002102200041003602440240418881c000410c200041386a4108200041c4" + "006a4104100d2204410c46044020002802442204416e462000290338220c428080f0c4c5a9d28f72517145044041f7" + "8fc000411f41014100410010001a419690c0004130200c100a1a41928fc000411f2004ac100a1a0c020b41da8fc000" + "411d41014100410010001a200121020c010b41c690c000412a41014100410010001a41bc86c000410f2004ac100a1a" + "0b410021012000410036025820004200370350420a200041d0006a2204410c410010011a2000420037030820004100" + "36024802402004410c200041086a4108200041c8006a4104100d2204410c46044020002802482204416f4620002903" + "08220c42808090bbbad6adf00d5171450440418d91c000411f41014100410010001a41e38ec000412f200c100a1a41" + "ac91c000411f2004ac100a1a0c020b41f090c000411d41014100410010001a200221010c010b41cb91c000412a4101" + "4100410010001a41bc86c000410f2004ac100a1a0b4100210220004100360268200042003703604200200041e0006a" + "2204410c410010011a200042003703182000410036024c02402004410c200041186a4108200041cc006a4104100d22" + "04410c4604402000290318220c50200028024c22044180808080784671450440419192c000411e4101410041001000" + "1a41af92c000411d200c100a1a41cc92c00041272004ac100a1a0c020b41f591c000411c41014100410010001a2001" + "21020c010b41f392c000412941014100410010001a41bc86c000410f2004ac100a1a0b4100210141b194c000412141" + "014100410010001a200042c0808080d0a0fdf000370018200041003602682000420037036002400240200041186a41" + "08200041e0006a2205410c4100100e2204410c46044041d294c000412220051010200042003703502005410c200041" + "d0006a41084100100c22044108470d012000290350220c4280c2d72f5104404101210141f494c000411d4101410041" + "0010001a0c030b419195c000411f41014100410010001a41b095c000411c200c100a1a0c020b418096c000411f4101" + "4100410010001a419f96c00041102004ac100a1a0c010b41cc95c000413441014100410010001a41bc86c000410f20" + "04ac100a1a0b4100210441af96c000412141014100410010001a200041ffffff8f7f36005820004281eceedce494cc" + "f9c000370050200041003602682000420037036002400240200041d0006a410c200041e0006a2206410c4100100f22" + "05410c46044041d096c000411c20061010200042003703182006410c200041186a41084100100c22054108470d0120" + "00290318220c42fb005104404101210441ec96c000411b41014100410010001a0c030b418797c000411d4101410041" + "0010001a41a497c0004116200c100a1a0c020b41ec97c000411d41014100410010001a419f96c00041102005ac100a" + "1a0c010b41ba97c000413241014100410010001a41bc86c000410f2005ac100a1a0b41002105024041be80c000410c" + "200041e0006a2206410c4100100f410c460440418998c000411a200610102006410c41be80c000410c100445044041" + "a398c000412041014100410010001a200421050c020b41c398c000412241014100410010001a0c010b41e598c00041" + "2041014100410010001a0b200041f0006a2400200b452007200871200971200a71200371200271200171200571710b" + "0b8f190100418080c0000b851920200a24242420746573745f666c6f61745f636d70202424242020666c6f61742066" + "726f6d20313a2020666c6f61742066726f6d20313a206661696c65640de0b6b3a7640000ffffffee2020666c6f6174" + "2066726f6d2031203d3d20464c4f41545f4f4e452020666c6f61742066726f6d203120213d20464c4f41545f4f4e45" + "2c206661696c6564f21f494c589c0000ffffffee2020666c6f61742066726f6d2031203e20464c4f41545f4e454741" + "544956455f4f4e452020666c6f61742066726f6d203120213e20464c4f41545f4e454741544956455f4f4e452c2066" + "61696c65642020464c4f41545f4e454741544956455f4f4e45203c20666c6f61742066726f6d20312020464c4f4154" + "5f4e454741544956455f4f4e4520213c20666c6f61742066726f6d20312c206661696c65640a24242420746573745f" + "666c6f61745f706f77202424242020666c6f61742063756265206f6620313a2020666c6f61742036746820706f7765" + "72206f66202d313a2020666c6f617420737175617265206f6620393a2020666c6f61742030746820706f776572206f" + "6620393a2020666c6f617420737175617265206f6620303a2020666c6f61742030746820706f776572206f66203020" + "28657870656374696e6720494e56414c49445f504152414d53206572726f72293a0a24242420746573745f666c6f61" + "745f726f6f74202424242020666c6f61742073717274206f6620393a2020666c6f61742063627274206f6620393a20" + "20666c6f61742063627274206f6620313030303030303a2020666c6f61742036746820726f6f74206f662031303030" + "3030303a0a24242420746573745f666c6f61745f696e76657274202424242020696e76657274206120666c6f617420" + "66726f6d2031303a2020696e7665727420616761696e3a2020696e766572742074776963653a20676f6f642020696e" + "766572742074776963653a206661696c65640a24242420746573745f666c6f61745f746f5f696e7420242424202066" + "6c6f61745f746f5f696e742831293a20676f6f642020666c6f61745f746f5f696e742831293a206661696c65642020" + "2020676f743a2020666c6f61745f746f5f696e742831293a206661696c65642077697468206572726f722020202065" + "72726f7220636f64653a2020666c6f61745f746f5f696e74282d31293a20676f6f642020666c6f61745f746f5f696e" + "74282d31293a206661696c65642020666c6f61745f746f5f696e74282d31293a206661696c65642077697468206572" + "726f722020666c6f61745f746f5f696e74286936343a3a4d4158293a20676f6f642020666c6f61745f746f5f696e74" + "286936343a3a4d4158293a206661696c65642020202065787065637465643a2020666c6f61745f746f5f696e742869" + "36343a3a4d4158293a206661696c65642077697468206572726f722020666c6f61745f746f5f696e742830293a2067" + "6f6f642020666c6f61745f746f5f696e742830293a206661696c65642020666c6f61745f746f5f696e742830293a20" + "6661696c65642077697468206572726f722020666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374" + "293a20676f6f642020666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a206661696c656420" + "20666c6f61745f746f5f696e7428302e312c20746f5f6e656172657374293a206661696c6564207769746820657272" + "6f722020666c6f61745f746f5f696e7428302e312c20746f77617264735f7a65726f293a20676f6f642020666c6f61" + "745f746f5f696e7428302e312c20746f77617264735f7a65726f293a206661696c65642020666c6f61745f746f5f69" + "6e7428302e312c20746f77617264735f7a65726f293a206661696c65642077697468206572726f720a242424207465" + "73745f666c6f61745f66726f6d5f7761736d202424242020666c6f61742066726f6d206936342031323330303a2020" + "666c6f61742066726f6d20693634203132333030206173204845583a2020666c6f61742066726f6d20693634203132" + "3330303a206661696c65642020666c6f61742066726f6d207536342031323330303a2020666c6f61742066726f6d20" + "7536342031323330303a206661696c65642020666c6f61742066726f6d2065787020322c206d616e74697373612031" + "32333a2020666c6f61742066726f6d2065787020322c206d616e7469737361203132333a206661696c65642020666c" + "6f61742066726f6d20636f6e737420313a2020666c6f61742066726f6d20636f6e7374202d313a0a24242420746573" + "745f666c6f61745f6d756c745f6469766964652024242420207265706561746564206d756c7469706c793a20676f6f" + "6420207265706561746564206d756c7469706c793a206661696c656420207265706561746564206469766964653a20" + "676f6f6420207265706561746564206469766964653a206661696c65640a24242420746573745f666c6f61745f746f" + "5f6d616e745f657870202424242020666c6f61745f746f5f6d616e745f6578702831293a20676f6f642020666c6f61" + "745f746f5f6d616e745f6578702831293a206661696c6564202020206578706563746564206d616e74697373612031" + "3030303030303030303030303030303030302c20676f743a202020206578706563746564206578706f6e656e74202d" + "31382c20676f743a2020666c6f61745f746f5f6d616e745f6578702831293a206661696c6564207769746820657272" + "6f722020666c6f61745f746f5f6d616e745f657870282d31293a20676f6f642020666c6f61745f746f5f6d616e745f" + "657870282d31293a206661696c6564202020206578706563746564206d616e7469737361202d313030303030303030" + "303030303030303030302c20676f743a2020666c6f61745f746f5f6d616e745f657870282d31293a206661696c6564" + "2077697468206572726f722020666c6f61745f746f5f6d616e745f657870283130293a20676f6f642020666c6f6174" + "5f746f5f6d616e745f657870283130293a206661696c6564202020206578706563746564206578706f6e656e74202d" + "31372c20676f743a2020666c6f61745f746f5f6d616e745f657870283130293a206661696c65642077697468206572" + "726f722020666c6f61745f746f5f6d616e745f6578702830293a20676f6f642020666c6f61745f746f5f6d616e745f" + "6578702830293a206661696c6564202020206578706563746564206d616e746973736120302c20676f743a20202020" + "6578706563746564206578706f6e656e74202d323134373438333634382c20676f743a2020666c6f61745f746f5f6d" + "616e745f6578702830293a206661696c65642077697468206572726f720a24242420746573745f666c6f61745f6164" + "645f7375627472616374202424242020666c6f61742066726f6d2031303a206661696c656420207265706561746564" + "206164643a20676f6f6420207265706561746564206164643a206661696c6564202072657065617465642073756274" + "726163743a20676f6f64202072657065617465642073756274726163743a206661696c65640a24242420746573745f" + "666c6f61745f66726f6d5f7374616d6f756e74202424242020666c6f61742066726f6d2058525020616d6f756e7420" + "2831303020585250293a202058525020616d6f756e7420636f6e76657273696f6e3a20676f6f64202058525020616d" + "6f756e7420636f6e76657273696f6e3a206661696c6564202020206578706563746564203130303030303030302c20" + "676f743a202058525020616d6f756e7420636f6e76657273696f6e3a206661696c6564202d20666c6f61745f746f5f" + "696e74206572726f722020666c6f61742066726f6d2058525020616d6f756e743a206661696c656420202020726573" + "756c745f73697a653a0a24242420746573745f666c6f61745f66726f6d5f73746e756d626572202424242020666c6f" + "61742066726f6d2053544e756d6265722028313233293a202053544e756d62657220636f6e76657273696f6e3a2067" + "6f6f64202053544e756d62657220636f6e76657273696f6e3a206661696c6564202020206578706563746564203132" + "332c20676f743a202053544e756d62657220636f6e76657273696f6e3a206661696c6564202d20666c6f61745f746f" + "5f696e74206572726f722020666c6f61742066726f6d2053544e756d6265723a206661696c65642020666c6f617420" + "66726f6d2053544e756d626572202831293a202053544e756d626572283129203d3d20464c4f41545f4f4e453a2067" + "6f6f64202053544e756d626572283129203d3d20464c4f41545f4f4e453a206661696c65642020666c6f6174206672" + "6f6d2053544e756d6265722831293a206661696c6564004d0970726f64756365727302086c616e6775616765010452" + "757374000c70726f6365737365642d6279010572757374631d312e39352e3020283539383037363136652032303236" + "2d30342d313429002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b087369" + "676e2d657874"; extern std::string const kFloat0Hex = "0061736d0100000001290560057f7f7f7f7f017f60047e7f7f7f017f60077f7f7f7f7f7f7f017f60047f7f7f7f017f" - "6000017f025f0408686f73745f6c6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e" - "74000108686f73745f6c69620e666c6f61745f7375627472616374000208686f73745f6c69620d666c6f61745f636f" - "6d7061726500030302010405030100110619037f01418080c0000b7f0041e980c0000b7f0041f080c0000b072e0406" - "6d656d6f727902000666696e69736800040a5f5f646174615f656e6403010b5f5f686561705f6261736503020acc01" - "01c90101027f230041206b22002400418080c000411541014100410010001a20004100360208200042003703002000" - "41003602182000420037031002400240420a2000410c41001001410c4604402000410c2000410c200041106a220141" - "0c41001002410c470d012001410c419580c000410c100345044041a180c000411a41014100410010001a0c030b41bb" - "80c000411941014100410010001a0c020b41d480c000411541014100410010001a0c010b41d480c000411541014100" - "410010001a0b200041206a240041010b0b720100418080c0000b690a24242420746573745f666c6f61745f30202424" - "240000000000000000800000002020464c4f41545f5a45524f20636f6d706172653a20676f6f642020464c4f41545f" - "5a45524f20636f6d706172653a206261642020666c6f61742031302d31303a206661696c6564004d0970726f647563" - "65727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39352e30" - "202835393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f6d7574" - "61626c652d676c6f62616c732b087369676e2d657874"; + "6000017f02560408686f73745f6c6962057472616365000008686f73745f6c69620e666c6f61745f66726f6d5f696e" + "74000108686f73745f6c696209666c6f61745f737562000208686f73745f6c696209666c6f61745f636d7000030302" + "010405030100110619037f01418080c0000b7f0041e980c0000b7f0041f080c0000b073504066d656d6f727902000d" + "657363726f775f66696e69736800040a5f5f646174615f656e6403010b5f5f686561705f6261736503020acc0101c9" + "0101027f230041206b22002400418080c000411541014100410010001a200041003602082000420037030020004100" + "3602182000420037031002400240420a2000410c41001001410c4604402000410c2000410c200041106a2201410c41" + "001002410c470d012001410c419580c000410c100345044041a180c000411a41014100410010001a0c030b41bb80c0" + "00411941014100410010001a0c020b41d480c000411541014100410010001a0c010b41d480c0004115410141004100" + "10001a0b200041206a240041010b0b720100418080c0000b690a24242420746573745f666c6f61745f302024242400" + "00000000000000800000002020464c4f41545f5a45524f20636f6d706172653a20676f6f642020464c4f41545f5a45" + "524f20636f6d706172653a206261642020666c6f61742031302d31303a206661696c6564004d0970726f6475636572" + "7302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e39352e302028" + "35393830373631366520323032362d30342d313429002c0f7461726765745f6665617475726573022b0f6d75746162" + "6c652d676c6f62616c732b087369676e2d657874"; extern std::string const kDisabledFloatHex = "0061736d010000000108026000006000017f03030200010503010002063e0a7f004180080b7f004180080b7f004180" - "100b7f004180100b7f00418090040b7f004180080b7f00418090040b7f00418080080b7f0041000b7f0041010b07b0" - "010d066d656d6f72790200115f5f7761736d5f63616c6c5f63746f727300000666696e69736800010362756603000c" - "5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020b5f5f737461636b5f6c6f7703030c5f5f737461" - "636b5f6869676803040d5f5f676c6f62616c5f6261736503050b5f5f686561705f6261736503060a5f5f686561705f" - "656e6403070d5f5f6d656d6f72795f6261736503080c5f5f7461626c655f6261736503090a150202000b1000430000" - "00c54300200045921a41010b"; + "100b7f004180100b7f00418090040b7f004180080b7f00418090040b7f00418080080b7f0041000b7f0041010b07b7" + "010d066d656d6f72790200115f5f7761736d5f63616c6c5f63746f727300000d657363726f775f66696e6973680001" + "0362756603000c5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020b5f5f737461636b5f6c6f7703" + "030c5f5f737461636b5f6869676803040d5f5f676c6f62616c5f6261736503050b5f5f686561705f6261736503060a" + "5f5f686561705f656e6403070d5f5f6d656d6f72795f6261736503080c5f5f7461626c655f6261736503090a150202" + "000b100043000000c54300200045931a41010b"; extern std::string const kMemoryPointerAtLimitHex = - "0061736d010000000105016000017f030201000503010001070a010666696e69736800000a0e010c0041ffff032d00" - "001a41010b"; + "0061736d010000000105016000017f0302010005030100010711010d657363726f775f66696e69736800000a0e010c" + "0041ffff032d00001a41010b"; extern std::string const kMemoryPointerOverLimitHex = - "0061736d010000000105016000017f030201000503010001070a010666696e69736800000a0e010c00418080042d00" - "001a41010b"; + "0061736d010000000105016000017f0302010005030100010711010d657363726f775f66696e69736800000a0e010c" + "00418080042d00001a41010b"; extern std::string const kMemoryOffsetOverLimitHex = - "0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a0e" - "010c00410028028080041a41010b"; + "0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e" + "69736800000a0e010c00410028028080041a41010b"; extern std::string const kMemoryEndOfWordOverLimitHex = - "0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a0e" - "010c0041feff032802001a41010b"; + "0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e" + "69736800000a0e010c0041feff032802001a41010b"; extern std::string const kMemoryGrow0To1PageHex = - "0061736d010000000105016000017f030201000503010000071302066d656d6f727902000666696e69736800000a0b" - "010900410140001a41010b"; + "0061736d010000000105016000017f030201000503010000071a02066d656d6f727902000d657363726f775f66696e" + "69736800000a0b010900410140001a41010b"; extern std::string const kMemoryGrow1To0PageHex = - "0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a13" - "011100417f4000417f460440417f0f0b41010b"; + "0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e" + "69736800000a13011100417f4000417f460440417f0f0b41010b"; extern std::string const kMemoryLastByteOf8MbHex = - "0061736d010000000105016000017f030201000506010180018001071302066d656d6f727902000666696e69736800" - "000a0f010d0041ffffff032d00001a41010b"; + "0061736d010000000105016000017f030201000506010180018001071a02066d656d6f727902000d657363726f775f" + "66696e69736800000a0f010d0041ffffff032d00001a41010b"; extern std::string const kMemoryGrow1MoreThan8MbHex = - "0061736d010000000105016000017f03020100050401008001071302066d656d6f727902000666696e69736800000a" - "1301110041014000417f460440417f0f0b41010b"; + "0061736d010000000105016000017f03020100050401008001071a02066d656d6f727902000d657363726f775f6669" + "6e69736800000a1301110041014000417f460440417f0f0b41010b"; extern std::string const kMemoryGrow0MoreThan8MbHex = - "0061736d010000000105016000017f03020100050401008001071302066d656d6f727902000666696e69736800000a" - "1301110041004000417f460440417f0f0b41010b"; + "0061736d010000000105016000017f03020100050401008001071a02066d656d6f727902000d657363726f775f6669" + "6e69736800000a1301110041004000417f460440417f0f0b41010b"; extern std::string const kMemoryInit1MoreThan8MbHex = - "0061736d010000000105016000017f030201000506010181018101071302066d656d6f727902000666696e69736800" - "000a0f010d0041ffffff032d00001a41010b"; + "0061736d010000000105016000017f030201000506010181018101071a02066d656d6f727902000d657363726f775f" + "66696e69736800000a0f010d0041ffffff032d00001a41010b"; extern std::string const kMemoryNegativeAddressHex = - "0061736d010000000105016000017f030201000506010180018001071302066d656d6f727902000666696e69736800" - "000a0c010a00417f2d00001a41010b"; + "0061736d010000000105016000017f030201000506010180018001071a02066d656d6f727902000d657363726f775f" + "66696e69736800000a0c010a00417f2d00001a41010b"; extern std::string const kTable64ElementsHex = - "0061736d010000000108026000006000017f0303020001040401700040070a010666696e6973680001094601004100" - "0b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000000000000000000000000000000000000a090202000b040041010b"; + "0061736d010000000108026000006000017f03030200010404017000400711010d657363726f775f66696e69736800" + "010946010041000b400000000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000a090202000b040041010b"; extern std::string const kTable65ElementsHex = - "0061736d010000000108026000006000017f0303020001040401700041070a010666696e6973680001094701004100" - "0b41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "00000000000000000000000000000000000000000a090202000b040041010b"; + "0061736d010000000108026000006000017f03030200010404017000410711010d657363726f775f66696e69736800" + "010947010041000b410000000000000000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000a090202000b040041010b"; extern std::string const kTable2TablesHex = - "0061736d010000000108026000006000017f03030200010409027001010170010101070a010666696e697368000109" - "0f020041000b0100020141000b0001000a090202000b040041010b"; + "0061736d010000000108026000006000017f030302000104090270010101700101010711010d657363726f775f6669" + "6e6973680001090f020041000b0100020141000b0001000a090202000b040041010b"; extern std::string const kTable0ElementsHex = - "0061736d010000000105016000017f03020100040401700000070a010666696e69736800000a0601040041010b"; + "0061736d010000000105016000017f030201000404017000000711010d657363726f775f66696e69736800000a0601" + "040041010b"; extern std::string const kTableUintMaxHex = - "0061736d010000000105016000017f030201000408017000ffffffff0f070a010666696e69736800000a0601040041" - "010b"; + "0061736d010000000105016000017f030201000408017000ffffffff0f0711010d657363726f775f66696e69736800" + "000a0601040041010b"; extern std::string const kProposalMutableGlobalHex = - "0061736d010000000105016000017f030201000606017f0141000b07140207636f756e74657203000666696e697368" - "00000a0d010b00230041016a240041010b"; + "0061736d010000000105016000017f030201000606017f0141000b071b0207636f756e74657203000d657363726f77" + "5f66696e69736800000a0d010b00230041016a240041010b"; extern std::string const kProposalGcStructNewHex = - "0061736d01000000010b026000017f5f027f017f0103020100070a010666696e69736800000a0a010800fb01011a41" - "010b"; + "0061736d01000000010b026000017f5f027f017f01030201000711010d657363726f775f66696e69736800000a0a01" + "0800fb01011a41010b"; extern std::string const kProposalMultiValueHex = - "0061736d010000000110036000027f7f6000017f60027f7f017f0303020001070a010666696e69736800010a140206" - "00410a41140b0b00100002026a411e460b0b"; + "0061736d010000000110036000027f7f6000017f60027f7f017f03030200010711010d657363726f775f66696e6973" + "6800010a14020600410a41140b0b00100002026a411e460b0b"; extern std::string const kProposalSignExtHex = - "0061736d010000000105016000017f03020100070a010666696e69736800000a0b01090041ff01c0417f460b"; + "0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0b01090041ff01c0" + "417f460b"; extern std::string const kProposalFloatToIntHex = - "0061736d010000000105016000017f03020100070a010666696e69736800000a1201100043f9021550fc0041ffffff" - "ff07460b"; + "0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a1201100043f90215" + "50fc0041ffffffff07460b"; extern std::string const kProposalBulkMemoryHex = - "0061736d010000000105016000017f030201000503010001071302066d656d6f727902000666696e69736800000a1f" - "011d004100412a3a000041e40041004101fc0a000041e4002d0000412a460b"; + "0061736d010000000105016000017f030201000503010001071a02066d656d6f727902000d657363726f775f66696e" + "69736800000a1f011d004100412a3a000041e40041004101fc0a000041e4002d0000412a460b"; extern std::string const kProposalRefTypesHex = - "0061736d010000000105016000017f020f0103656e76057461626c65016f000103020100070a010666696e69736800" - "000a0c010a004100d06f260041010b"; + "0061736d010000000105016000017f020f0103656e76057461626c65016f0001030201000711010d657363726f775f" + "66696e69736800000a0c010a004100d06f260041010b"; extern std::string const kProposalTailCallHex = - "0061736d010000000105016000017f0303020000070a010666696e69736800010a0b02040041010b040012000b"; + "0061736d010000000105016000017f03030200000711010d657363726f775f66696e69736800010a0b02040041010b" + "040012000b"; extern std::string const kProposalExtendedConstHex = - "0061736d010000000105016000017f030201000609017f00410a41206a0b070a010666696e69736800000a09010700" - "2300412a460b"; + "0061736d010000000105016000017f030201000609017f00410a41206a0b0711010d657363726f775f66696e697368" + "00000a090107002300412a460b"; extern std::string const kProposalMultiMemoryHex = - "0061736d010000000105016000017f0302010005050200000001070a010666696e69736800000a060104003f010b"; + "0061736d010000000105016000017f03020100050502000000010711010d657363726f775f66696e69736800000a06" + "0104003f010b"; extern std::string const kProposalCustomPageSizesHex = - "0061736d010000000105016000017f0302010005040108010a070a010666696e69736800000a0601040041010b0010" - "046e616d65010901000666696e697368"; + "0061736d010000000105016000017f030201000504010801000711010d657363726f775f66696e69736800000a0601" + "040041010b"; extern std::string const kProposalMemory64Hex = - "0061736d010000000105016000017f030201000503010401070a010666696e69736800000a10010e004200412a3a00" - "003f004201510b0010046e616d65010901000666696e697368"; + "0061736d010000000105016000017f0302010005030104010711010d657363726f775f66696e69736800000a10010e" + "004200412a3a00003f004201510b"; extern std::string const kProposalWideArithmeticHex = - "0061736d010000000105016000017f03020100070a010666696e69736800000a0e010c0042014202fc161a1a41010b" - "0010046e616d65010901000666696e697368"; + "0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0e010c0042014202" + "fc161a1a41010b"; extern std::string const kTrapDivideBy0Hex = - "0061736d010000000105016000017f03020100070a010666696e69736800000a0c010a00412a41006d1a41010b"; + "0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0c010a00412a4100" + "6d1a41010b"; extern std::string const kTrapIntOverflowHex = - "0061736d010000000105016000017f03020100070a010666696e69736800000a0d010b00418080808078417f6d0b"; + "0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a0d010b0041808080" + "8078417f6d0b"; extern std::string const kTrapUnreachableHex = - "0061736d010000000105016000017f03020100070a010666696e69736800000a070105000041010b"; + "0061736d010000000105016000017f030201000711010d657363726f775f66696e69736800000a070105000041010" + "b"; extern std::string const kTrapNullCallHex = - "0061736d010000000105016000017f03020100040401700001070a010666696e69736800000a090107004100110000" - "0b"; + "0061736d010000000105016000017f030201000404017000010711010d657363726f775f66696e69736800000a0901" + "070041001100000b"; extern std::string const kTrapFuncSigMismatchHex = - "0061736d010000000108026000006000017f0303020001040401700001070a010666696e6973680001090701004100" - "0b01000a0d020300010b070041001101000b"; + "0061736d010000000108026000006000017f03030200010404017000010711010d657363726f775f66696e69736800" + "010907010041000b01000a0d020300010b070041001101000b"; extern std::string const kWasiGetTimeHex = "0061736d01000000010c0260037f7e7f017f6000017f02290116776173695f736e617073686f745f70726576696577" - "310e636c6f636b5f74696d655f6765740000030201010503010001071302066d656d6f727902000666696e69736800" - "010a16011400410042e8074100100045047f410105417f0b0b"; + "310e636c6f636b5f74696d655f6765740000030201010503010001071a02066d656d6f727902000d657363726f775f" + "66696e69736800010a16011400410042e8074100100045047f410105417f0b0b"; extern std::string const kWasiPrintHex = "0061736d01000000010d0260047f7f7f7f017f6000017f02230116776173695f736e617073686f745f707265766965" - "77310866645f77726974650000030201010503010001071302066d656d6f727902000666696e69736800010a1d011b" - "01017f411821004101410041012000100045047f410105417f0b0b0b1e030041100b0648656c6c6f0a0041000b0410" - "0000000041040b0406000000"; + "77310866645f77726974650000030201010503010001071a02066d656d6f727902000d657363726f775f66696e6973" + "6800010a1d011b01017f411821004101410041012000100045047f410105417f0b0b0b1e030041100b0648656c6c6f" + "0a0041000b04100000000041040b0406000000"; // The following several wasm hex strings are for testing wasm section // corruption cases. They are illegal hence do not have corresponding @@ -1102,29 +1117,29 @@ extern std::string const kInfiniteLoopWasmHex = "6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565"; extern std::string const kStartLoopHex = - "0061736d010000000108026000006000017f030302000107120205737461727400000666696e69736800010801000a" - "0e02070003400c000b0b040041010b"; + "0061736d010000000108026000006000017f030302000107190205737461727400000d657363726f775f66696e6973" + "6800010801000a0e02070003400c000b0b040041010b"; extern std::string const kBadAlignWasmHex = - "0061736d01000000011b046000017f60057f7f7f7f7f017f60067f7f7f7f7f7f017f600000022a0203656e760f666c" - "6f61745f66726f6d5f75696e74000103656e760c636865636b5f6b65796c6574000203050403000000050301000306" - "470b7f004180080b7f00418088020b7f004180080b7f00418088040b7f00418088040b7f00418088080b7f00418008" - "0b7f00418088080b7f004180800c0b7f0041000b7f0041010b07cc0110066d656d6f72790200115f5f7761736d5f63" - "616c6c5f63746f72730002057465737431000307655f64617461310300057465737432000407655f64617461320301" - "047465737400050c5f5f64736f5f68616e646c6503020a5f5f646174615f656e6403030b5f5f737461636b5f6c6f77" - "03040c5f5f737461636b5f6869676803050d5f5f676c6f62616c5f6261736503060b5f5f686561705f626173650307" - "0a5f5f686561705f656e6403080d5f5f6d656d6f72795f6261736503090c5f5f7461626c655f62617365030a0a9902" - "0402000b2801017f418108427f370000418108410841a308410c41001000220041a40828020020004100481b0b5f01" - "017f419a88024191a4cca00136010041928802428994ace0d0c1c38710370100418a88024281848ca0d0c0c1830837" - "010041818802417f360000418a8802411441818802410441a3880241201001220041a4880228020020004100481b0b" - "8a0101037f418108427f370000418108410841a308410c410010002100419a88024191a4cca0013601004192880242" - "8994ace0d0c1c38710370100418a88024281848ca0d0c0c1830837010041818802417f36000041a408280200210141" - "8a8802411441818802410441a3880241201001220241a4880228020020024100481b2000200120004100481b6a0b00" - "7f0970726f647563657273010c70726f6365737365642d62790105636c616e675f31392e312e352d776173692d7364" - "6b202868747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c6c766d2d70726f6a6563742061623462356132" - "6462353832393538616631656533303861373930636664623432626432343732302900490f7461726765745f666561" - "7475726573042b0f6d757461626c652d676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d7479" - "7065732b0a6d756c746976616c7565"; + "0061736d01000000011b046000017f60057f7f7f7f7f017f60067f7f7f7f7f7f017f60000002260203656e760f666c" + "6f61745f66726f6d5f75696e74000103656e7608636865636b5f6964000203050403000000050301000306470b7f00" + "4180080b7f00418088020b7f004180080b7f00418088040b7f00418088040b7f00418088080b7f004180080b7f0041" + "8088080b7f004180800c0b7f0041000b7f0041010b07cc0110066d656d6f72790200115f5f7761736d5f63616c6c5f" + "63746f72730002057465737431000307655f64617461310300057465737432000407655f6461746132030104746573" + "7400050c5f5f64736f5f68616e646c6503020a5f5f646174615f656e6403030b5f5f737461636b5f6c6f7703040c5f" + "5f737461636b5f6869676803050d5f5f676c6f62616c5f6261736503060b5f5f686561705f6261736503070a5f5f68" + "6561705f656e6403080d5f5f6d656d6f72795f6261736503090c5f5f7461626c655f62617365030a0a99020402000b" + "2801017f418108427f370000418108410841a308410c41001000220041a40828020020004100481b0b5f01017f419a" + "88024191a4cca00136010041928802428994ace0d0c1c38710370100418a88024281848ca0d0c0c183083701004181" + "8802417f360000418a8802411441818802410441a3880241201001220041a4880228020020004100481b0b8a010103" + "7f418108427f370000418108410841a308410c410010002100419a88024191a4cca00136010041928802428994ace0" + "d0c1c38710370100418a88024281848ca0d0c0c1830837010041818802417f36000041a4082802002101418a880241" + "1441818802410441a3880241201001220241a4880228020020024100481b2000200120004100481b6a0b007f097072" + "6f647563657273010c70726f6365737365642d62790105636c616e675f31392e312e352d776173692d73646b202868" + "747470733a2f2f6769746875622e636f6d2f6c6c766d2f6c6c766d2d70726f6a656374206162346235613264623538" + "32393538616631656533303861373930636664623432626432343732302900490f7461726765745f66656174757265" + "73042b0f6d757461626c652d676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d74797065732b" + "0a6d756c746976616c7565"; extern std::string const kThousandParamsHex = "0061736d0100000001f1070260000060e8077f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" diff --git a/src/test/app/wasm_fixtures/float_0/Cargo.lock b/src/test/app/wasm_fixtures/float_0/Cargo.lock index 4c62a73f26..690b1b51f3 100644 --- a/src/test/app/wasm_fixtures/float_0/Cargo.lock +++ b/src/test/app/wasm_fixtures/float_0/Cargo.lock @@ -4,11 +4,11 @@ version = 4 [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ - "generic-array", + "hybrid-array", ] [[package]] @@ -27,31 +27,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] -name = "cpufeatures" -version = "0.2.17" +name = "const-oid" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" dependencies = [ "libc", ] [[package]] name = "crypto-common" -version = "0.1.7" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ - "generic-array", - "typenum", + "hybrid-array", ] [[package]] name = "digest" -version = "0.10.7" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer", + "const-oid", "crypto-common", ] @@ -63,13 +69,12 @@ dependencies = [ ] [[package]] -name = "generic-array" -version = "0.14.7" +name = "hybrid-array" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" dependencies = [ "typenum", - "version_check", ] [[package]] @@ -98,9 +103,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" dependencies = [ "cfg-if", "cpufeatures", @@ -135,9 +140,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unicode-ident" @@ -146,17 +151,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "xrpl-address-macro" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?rev=1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +name = "xrpl-macros" +version = "0.1.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#6b35fe45ac70bad38914e7f319d31d7947e05e25" dependencies = [ "bs58", + "proc-macro2", "quote", "sha2", "syn", @@ -164,8 +164,8 @@ dependencies = [ [[package]] name = "xrpl-wasm-stdlib" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?rev=1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +version = "0.8.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#6b35fe45ac70bad38914e7f319d31d7947e05e25" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/float_0/Cargo.toml b/src/test/app/wasm_fixtures/float_0/Cargo.toml index 10b20c5428..95254f2e2b 100644 --- a/src/test/app/wasm_fixtures/float_0/Cargo.toml +++ b/src/test/app/wasm_fixtures/float_0/Cargo.toml @@ -15,7 +15,7 @@ opt-level = 's' panic = "abort" [dependencies] -xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", rev = "1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" } +xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "renames" } [profile.dev] panic = "abort" diff --git a/src/test/app/wasm_fixtures/float_0/src/lib.rs b/src/test/app/wasm_fixtures/float_0/src/lib.rs index babcc1bf54..5f6c8f0770 100644 --- a/src/test/app/wasm_fixtures/float_0/src/lib.rs +++ b/src/test/app/wasm_fixtures/float_0/src/lib.rs @@ -1,16 +1,18 @@ #![cfg_attr(target_arch = "wasm32", no_std)] use xrpl_std::host::trace::trace; -use xrpl_std::host::{float_compare, float_from_int, float_subtract, FLOAT_ROUNDING_MODES_TO_NEAREST}; +use xrpl_std::host::{float_cmp, float_from_int, float_sub, FLOAT_ROUNDING_MODES_TO_NEAREST}; // Float size constant (8 bytes mantissa + 4 bytes exponent) const FLOAT_SIZE: usize = 12; // FLOAT_ZERO constant -const FLOAT_ZERO: [u8; FLOAT_SIZE] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00]; +const FLOAT_ZERO: [u8; FLOAT_SIZE] = [ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, +]; #[unsafe(no_mangle)] -pub extern "C" fn finish() -> i32 { +pub extern "C" fn escrow_finish() -> i32 { let _ = trace("\n$$$ test_float_0 $$$"); // Test: 10 - 10 should equal 0 @@ -18,29 +20,47 @@ pub extern "C" fn finish() -> i32 { let mut f_result: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; // Create float from 10 - if FLOAT_SIZE as i32 != unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + != unsafe { + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace(" float 10-10: failed"); return 1; } // Subtract: 10 - 10 = 0 - if FLOAT_SIZE as i32 != unsafe { - float_subtract( - f10.as_ptr(), - FLOAT_SIZE, - f10.as_ptr(), - FLOAT_SIZE, - f_result.as_mut_ptr(), - FLOAT_SIZE, - FLOAT_ROUNDING_MODES_TO_NEAREST, - ) - } { + if FLOAT_SIZE as i32 + != unsafe { + float_sub( + f10.as_ptr(), + FLOAT_SIZE, + f10.as_ptr(), + FLOAT_SIZE, + f_result.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace(" float 10-10: failed"); return 1; } // Compare result with FLOAT_ZERO constant - if 0 == unsafe { float_compare(f_result.as_ptr(), FLOAT_SIZE, FLOAT_ZERO.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { + float_cmp( + f_result.as_ptr(), + FLOAT_SIZE, + FLOAT_ZERO.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" FLOAT_ZERO compare: good"); } else { let _ = trace(" FLOAT_ZERO compare: bad"); diff --git a/src/test/app/wasm_fixtures/float_tests/Cargo.lock b/src/test/app/wasm_fixtures/float_tests/Cargo.lock index efad3253e7..92158d3262 100644 --- a/src/test/app/wasm_fixtures/float_tests/Cargo.lock +++ b/src/test/app/wasm_fixtures/float_tests/Cargo.lock @@ -4,11 +4,11 @@ version = 4 [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" dependencies = [ - "generic-array", + "hybrid-array", ] [[package]] @@ -27,31 +27,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] -name = "cpufeatures" -version = "0.2.17" +name = "const-oid" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" dependencies = [ "libc", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ - "generic-array", - "typenum", + "hybrid-array", ] [[package]] name = "digest" -version = "0.10.7" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer", + "const-oid", "crypto-common", ] @@ -63,13 +69,12 @@ dependencies = [ ] [[package]] -name = "generic-array" -version = "0.14.9" +name = "hybrid-array" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" dependencies = [ "typenum", - "version_check", ] [[package]] @@ -98,9 +103,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" dependencies = [ "cfg-if", "cpufeatures", @@ -135,9 +140,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unicode-ident" @@ -146,17 +151,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "xrpl-address-macro" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +name = "xrpl-macros" +version = "0.1.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#6b35fe45ac70bad38914e7f319d31d7947e05e25" dependencies = [ "bs58", + "proc-macro2", "quote", "sha2", "syn", @@ -164,8 +164,8 @@ dependencies = [ [[package]] name = "xrpl-wasm-stdlib" -version = "0.7.1" -source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=u32-buffer#1e5d096f46742ef7fcf1cb6f28a2526a72ed59d8" +version = "0.8.0" +source = "git+https://github.com/ripple/xrpl-wasm-stdlib.git?branch=renames#6b35fe45ac70bad38914e7f319d31d7947e05e25" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/float_tests/Cargo.toml b/src/test/app/wasm_fixtures/float_tests/Cargo.toml index a115dc006f..d4f70f1afc 100644 --- a/src/test/app/wasm_fixtures/float_tests/Cargo.toml +++ b/src/test/app/wasm_fixtures/float_tests/Cargo.toml @@ -15,7 +15,7 @@ opt-level = 's' panic = "abort" [dependencies] -xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "u32-buffer" } +xrpl-std = { git = "https://github.com/ripple/xrpl-wasm-stdlib.git", package = "xrpl-wasm-stdlib", branch = "renames" } [profile.dev] panic = "abort" diff --git a/src/test/app/wasm_fixtures/float_tests/src/lib.rs b/src/test/app/wasm_fixtures/float_tests/src/lib.rs index 559ecc22a5..b5e6aa6185 100644 --- a/src/test/app/wasm_fixtures/float_tests/src/lib.rs +++ b/src/test/app/wasm_fixtures/float_tests/src/lib.rs @@ -10,9 +10,8 @@ use xrpl_std::decode_hex_32; use xrpl_std::host::trace::DataRepr::AsHex; use xrpl_std::host::trace::{trace, trace_data, trace_num, DataRepr}; use xrpl_std::host::{ - cache_ledger_obj, float_add, float_compare, float_divide, float_from_int, float_from_uint, - float_multiply, float_pow, float_root, float_subtract, - get_ledger_obj_array_len, get_ledger_obj_field, get_ledger_obj_nested_field, + cache_le, float_add, float_cmp, float_div, float_from_int, float_from_uint, float_mult, + float_pow, float_root, float_sub, le_field, le_inner, le_inner_arr_len, FLOAT_ROUNDING_MODES_TO_NEAREST, }; use xrpl_std::sfield; @@ -60,7 +59,7 @@ unsafe extern "C" { exponent_len: i32, ) -> i32; - #[link_name = "float_from_mant_exp"] + #[link_name = "float_from_mant_exp"] fn float_from_mant_exp( mantissa: i64, exponent: i32, @@ -75,9 +74,13 @@ const FLOAT_SIZE: usize = 12; // Float constants (8 bytes mantissa + 4 bytes exponent, big-endian) // FLOAT_ONE: mantissa=0x0DE0B6B3A7640000 (10^18), exponent=0xFFFFFFEE (-18) -const FLOAT_ONE: [u8; FLOAT_SIZE] = [0x0D, 0xE0, 0xB6, 0xB3, 0xA7, 0x64, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE]; +const FLOAT_ONE: [u8; FLOAT_SIZE] = [ + 0x0D, 0xE0, 0xB6, 0xB3, 0xA7, 0x64, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE, +]; // FLOAT_NEGATIVE_ONE: mantissa=0xF21F494C589C0000 (-10^18), exponent=0xFFFFFFEE (-18) -const FLOAT_NEGATIVE_ONE: [u8; FLOAT_SIZE] = [0xF2, 0x1F, 0x49, 0x4C, 0x58, 0x9C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE]; +const FLOAT_NEGATIVE_ONE: [u8; FLOAT_SIZE] = [ + 0xF2, 0x1F, 0x49, 0x4C, 0x58, 0x9C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xEE, +]; // Helper function to trace floats fn trace_float(msg: &str, f: &[u8; FLOAT_SIZE]) { @@ -90,7 +93,16 @@ fn test_float_from_wasm() -> bool { let mut all_pass = true; let mut f: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - if FLOAT_SIZE as i32 == unsafe { float_from_int(12300, f.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + == unsafe { + float_from_int( + 12300, + f.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace_float(" float from i64 12300:", &f); let _ = trace_data(" float from i64 12300 as HEX:", &f, AsHex); } else { @@ -99,22 +111,34 @@ fn test_float_from_wasm() -> bool { } let u64_value: u64 = 12300; - if FLOAT_SIZE as i32 == unsafe { - float_from_uint( - &u64_value as *const u64 as *const u8, - 8, - f.as_mut_ptr(), - FLOAT_SIZE, - FLOAT_ROUNDING_MODES_TO_NEAREST, - ) - } { + if FLOAT_SIZE as i32 + == unsafe { + float_from_uint( + &u64_value as *const u64 as *const u8, + 8, + f.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace_float(" float from u64 12300:", &f); } else { let _ = trace(" float from u64 12300: failed"); all_pass = false; } - if FLOAT_SIZE as i32 == unsafe { float_from_mant_exp(123, 2, f.as_mut_ptr(), FLOAT_SIZE as i32, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + == unsafe { + float_from_mant_exp( + 123, + 2, + f.as_mut_ptr(), + FLOAT_SIZE as i32, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace_float(" float from exp 2, mantissa 123:", &f); } else { let _ = trace(" float from exp 2, mantissa 123: failed"); @@ -127,33 +151,56 @@ fn test_float_from_wasm() -> bool { all_pass } -fn test_float_compare() -> bool { - let _ = trace("\n$$$ test_float_compare $$$"); +fn test_float_cmp() -> bool { + let _ = trace("\n$$$ test_float_cmp $$$"); let mut all_pass = true; let mut f1: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - if FLOAT_SIZE as i32 != unsafe { float_from_int(1, f1.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + != unsafe { + float_from_int( + 1, + f1.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace(" float from 1: failed"); all_pass = false; } else { let _ = trace_float(" float from 1:", &f1); } - if 0 == unsafe { float_compare(f1.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f1.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), FLOAT_SIZE) } { let _ = trace(" float from 1 == FLOAT_ONE"); } else { let _ = trace(" float from 1 != FLOAT_ONE, failed"); all_pass = false; } - if 1 == unsafe { float_compare(f1.as_ptr(), FLOAT_SIZE, FLOAT_NEGATIVE_ONE.as_ptr(), FLOAT_SIZE) } { + if 1 == unsafe { + float_cmp( + f1.as_ptr(), + FLOAT_SIZE, + FLOAT_NEGATIVE_ONE.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" float from 1 > FLOAT_NEGATIVE_ONE"); } else { let _ = trace(" float from 1 !> FLOAT_NEGATIVE_ONE, failed"); all_pass = false; } - if 2 == unsafe { float_compare(FLOAT_NEGATIVE_ONE.as_ptr(), FLOAT_SIZE, f1.as_ptr(), FLOAT_SIZE) } { + if 2 == unsafe { + float_cmp( + FLOAT_NEGATIVE_ONE.as_ptr(), + FLOAT_SIZE, + f1.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" FLOAT_NEGATIVE_ONE < float from 1"); } else { let _ = trace(" FLOAT_NEGATIVE_ONE !< float from 1, failed"); @@ -183,12 +230,21 @@ fn test_float_add_subtract() -> bool { // let _ = trace_float(" float:", &f_compute); } let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - if FLOAT_SIZE as i32 != unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) } { + if FLOAT_SIZE as i32 + != unsafe { + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + } + { let _ = trace(" float from 10: failed"); all_pass = false; } - if 0 == unsafe { float_compare(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { let _ = trace(" repeated add: good"); } else { let _ = trace(" repeated add: failed"); @@ -197,7 +253,7 @@ fn test_float_add_subtract() -> bool { for i in 0..11 { unsafe { - float_subtract( + float_sub( f_compute.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), @@ -208,7 +264,14 @@ fn test_float_add_subtract() -> bool { ) }; } - if 0 == unsafe { float_compare(f_compute.as_ptr(), FLOAT_SIZE, FLOAT_NEGATIVE_ONE.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { + float_cmp( + f_compute.as_ptr(), + FLOAT_SIZE, + FLOAT_NEGATIVE_ONE.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" repeated subtract: good"); } else { let _ = trace(" repeated subtract: failed"); @@ -218,16 +281,23 @@ fn test_float_add_subtract() -> bool { all_pass } -fn test_float_multiply_divide() -> bool { - let _ = trace("\n$$$ test_float_multiply_divide $$$"); +fn test_float_mult_divide() -> bool { + let _ = trace("\n$$$ test_float_mult_divide $$$"); let mut all_pass = true; let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut f_compute: [u8; FLOAT_SIZE] = FLOAT_ONE; for i in 0..6 { unsafe { - float_multiply( + float_mult( f_compute.as_ptr(), FLOAT_SIZE, f10.as_ptr(), @@ -249,7 +319,14 @@ fn test_float_multiply_divide() -> bool { ) }; - if 0 == unsafe { float_compare(f1000000.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { + float_cmp( + f1000000.as_ptr(), + FLOAT_SIZE, + f_compute.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" repeated multiply: good"); } else { let _ = trace(" repeated multiply: failed"); @@ -258,7 +335,7 @@ fn test_float_multiply_divide() -> bool { for i in 0..7 { unsafe { - float_divide( + float_div( f_compute.as_ptr(), FLOAT_SIZE, f10.as_ptr(), @@ -270,9 +347,17 @@ fn test_float_multiply_divide() -> bool { }; } let mut f01: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_mant_exp(1, -1, f01.as_mut_ptr(), FLOAT_SIZE as i32, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_mant_exp( + 1, + -1, + f01.as_mut_ptr(), + FLOAT_SIZE as i32, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; - if 0 == unsafe { float_compare(f_compute.as_ptr(), FLOAT_SIZE, f01.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f_compute.as_ptr(), FLOAT_SIZE, f01.as_ptr(), FLOAT_SIZE) } { let _ = trace(" repeated divide: good"); } else { let _ = trace(" repeated divide: failed"); @@ -312,7 +397,14 @@ fn test_float_pow() -> bool { let _ = trace_float(" float 6th power of -1:", &f_compute); let mut f9: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(9, f9.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 9, + f9.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; unsafe { float_pow( f9.as_ptr(), @@ -338,7 +430,14 @@ fn test_float_pow() -> bool { let _ = trace_float(" float 0th power of 9:", &f_compute); let mut f0: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(0, f0.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 0, + f0.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; unsafe { float_pow( f0.as_ptr(), @@ -374,7 +473,14 @@ fn test_float_root() -> bool { let mut all_pass = true; let mut f9: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(9, f9.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 9, + f9.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut f_compute: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; unsafe { float_root( @@ -440,9 +546,16 @@ fn test_float_invert() -> bool { let mut f_compute: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; unsafe { - float_divide( + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; + unsafe { + float_div( FLOAT_ONE.as_ptr(), FLOAT_SIZE, f10.as_ptr(), @@ -454,7 +567,7 @@ fn test_float_invert() -> bool { }; let _ = trace_float(" invert a float from 10:", &f_compute); unsafe { - float_divide( + float_div( FLOAT_ONE.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), @@ -467,7 +580,7 @@ fn test_float_invert() -> bool { let _ = trace_float(" invert again:", &f_compute); // if f10's value is 7, then invert twice won't match the original value - if 0 == unsafe { float_compare(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { float_cmp(f10.as_ptr(), FLOAT_SIZE, f_compute.as_ptr(), FLOAT_SIZE) } { let _ = trace(" invert twice: good"); } else { let _ = trace(" invert twice: failed"); @@ -489,7 +602,7 @@ fn test_float_to_int() -> bool { FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -514,7 +627,7 @@ fn test_float_to_int() -> bool { FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -535,14 +648,21 @@ fn test_float_to_int() -> bool { // Test converting a larger number (i64::MAX) let test_val: i64 = i64::MAX; let mut f_max: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(test_val, f_max.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + test_val, + f_max.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let ret = unsafe { float_to_int( f_max.as_ptr(), FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -563,14 +683,21 @@ fn test_float_to_int() -> bool { // Test converting zero let mut f0: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(0, f0.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 0, + f0.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let ret = unsafe { float_to_int( f0.as_ptr(), FLOAT_SIZE as i32, result.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -590,14 +717,22 @@ fn test_float_to_int() -> bool { // Test rounding with fractional value (0.1) let mut f01: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_mant_exp(1, -1, f01.as_mut_ptr(), FLOAT_SIZE as i32, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_mant_exp( + 1, + -1, + f01.as_mut_ptr(), + FLOAT_SIZE as i32, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let ret = unsafe { float_to_int( f01.as_ptr(), FLOAT_SIZE as i32, result.as_mut_ptr(), 8 as i32, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 as i32 { @@ -622,7 +757,7 @@ fn test_float_to_int() -> bool { FLOAT_SIZE as i32, result.as_mut_ptr(), 8 as i32, - 1 + 1, ) }; if ret == 8 as i32 { @@ -711,7 +846,14 @@ fn test_float_to_mant_exp() -> bool { // Test with a float created from int (10) let mut f10: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(10, f10.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 10, + f10.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut mantissa_bytes: [u8; 8] = [0u8; 8]; let mut exponent_bytes: [u8; 4] = [0u8; 4]; @@ -745,7 +887,14 @@ fn test_float_to_mant_exp() -> bool { // Test with zero let mut f0: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; - unsafe { float_from_int(0, f0.as_mut_ptr(), FLOAT_SIZE, FLOAT_ROUNDING_MODES_TO_NEAREST) }; + unsafe { + float_from_int( + 0, + f0.as_mut_ptr(), + FLOAT_SIZE, + FLOAT_ROUNDING_MODES_TO_NEAREST, + ) + }; let mut mantissa_bytes: [u8; 8] = [0u8; 8]; let mut exponent_bytes: [u8; 4] = [0u8; 4]; @@ -792,9 +941,7 @@ fn test_float_from_stamount() -> bool { // Create an XRP amount: 100 XRP = 100,000,000 drops // XRP format: bit 62 clear (not IOU), bit 63 clear (not negative) // Amount in drops: 100,000,000 = 0x05F5E100 - let xrp_amount: [u8; 8] = [ - 0x40, 0x00, 0x00, 0x00, 0x05, 0xF5, 0xE1, 0x00 - ]; + let xrp_amount: [u8; 8] = [0x40, 0x00, 0x00, 0x00, 0x05, 0xF5, 0xE1, 0x00]; let mut f_result: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; let result_size = unsafe { @@ -818,7 +965,7 @@ fn test_float_from_stamount() -> bool { FLOAT_SIZE as i32, int_bytes.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -857,8 +1004,8 @@ fn test_float_from_stnumber() -> bool { // But we need to fit in int64, so use mantissa=123*10^15, exponent=-15 // 123*10^15 = 123000000000000000 = 0x01B69B4BA630F34000 let stnumber_123: [u8; 12] = [ - 0x01, 0xB6, 0x9B, 0x4B, 0xA6, 0x30, 0xF3, 0x40, // mantissa - 0xFF, 0xFF, 0xFF, 0xF1, // exponent = -15 + 0x01, 0xB6, 0x9B, 0x4B, 0xA6, 0x30, 0xF3, 0x40, // mantissa + 0xFF, 0xFF, 0xFF, 0xF1, // exponent = -15 ]; let mut f_result: [u8; FLOAT_SIZE] = [0u8; FLOAT_SIZE]; @@ -883,7 +1030,7 @@ fn test_float_from_stnumber() -> bool { FLOAT_SIZE as i32, int_bytes.as_mut_ptr(), 8, - FLOAT_ROUNDING_MODES_TO_NEAREST + FLOAT_ROUNDING_MODES_TO_NEAREST, ) }; if ret == 8 { @@ -921,7 +1068,14 @@ fn test_float_from_stnumber() -> bool { let _ = trace_float(" float from STNumber (1):", &f_result); // Should match FLOAT_ONE - if 0 == unsafe { float_compare(f_result.as_ptr(), FLOAT_SIZE, FLOAT_ONE.as_ptr(), FLOAT_SIZE) } { + if 0 == unsafe { + float_cmp( + f_result.as_ptr(), + FLOAT_SIZE, + FLOAT_ONE.as_ptr(), + FLOAT_SIZE, + ) + } { let _ = trace(" STNumber(1) == FLOAT_ONE: good"); } else { let _ = trace(" STNumber(1) == FLOAT_ONE: failed"); @@ -936,12 +1090,12 @@ fn test_float_from_stnumber() -> bool { } #[unsafe(no_mangle)] -pub extern "C" fn finish() -> i32 { +pub extern "C" fn escrow_finish() -> i32 { let mut all_pass = true; all_pass &= test_float_from_wasm(); - all_pass &= test_float_compare(); + all_pass &= test_float_cmp(); all_pass &= test_float_add_subtract(); - all_pass &= test_float_multiply_divide(); + all_pass &= test_float_mult_divide(); all_pass &= test_float_pow(); all_pass &= test_float_root(); all_pass &= test_float_invert(); @@ -950,5 +1104,9 @@ pub extern "C" fn finish() -> i32 { all_pass &= test_float_from_stamount(); all_pass &= test_float_from_stnumber(); - if all_pass { 1 } else { 0 } + if all_pass { + 1 + } else { + 0 + } } diff --git a/src/test/app/wasm_fixtures/wat/custom_page_sizes.wat b/src/test/app/wasm_fixtures/wat/custom_page_sizes.wat index a9d404fadc..c0bf1c3a11 100644 --- a/src/test/app/wasm_fixtures/wat/custom_page_sizes.wat +++ b/src/test/app/wasm_fixtures/wat/custom_page_sizes.wat @@ -1,13 +1,13 @@ (module ;; Define a memory with 1 initial page. - ;; CRITICAL: We explicitly set the page size to 1 kilobyte. + ;; CRITICAL: We explicitly set the page size to 1 byte. ;; Standard Wasm implies (pagesize 65536). - (memory 1 (pagesize 1024)) + (memory 1 (pagesize 1)) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; If this module instantiates, the runtime accepted the custom page size. i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/deep_recursion.wat b/src/test/app/wasm_fixtures/wat/deep_recursion.wat index 8e1f02c001..efe20cf53d 100644 --- a/src/test/app/wasm_fixtures/wat/deep_recursion.wat +++ b/src/test/app/wasm_fixtures/wat/deep_recursion.wat @@ -3,7 +3,7 @@ ;; We initialize it to 1,000,000. (global $counter (mut i32) (i32.const 1000000)) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; 1. Check if counter == 0 (Base Case) global.get $counter i32.eqz @@ -21,9 +21,9 @@ ;; 3. Recursive Step: Call SELF ;; This puts an i32 (1) on the stack when it returns. - call $finish + call $escrow_finish ) ;; Export the only function we have - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory64.wat b/src/test/app/wasm_fixtures/wat/memory64.wat index 02c8f4f590..3273af1e40 100644 --- a/src/test/app/wasm_fixtures/wat/memory64.wat +++ b/src/test/app/wasm_fixtures/wat/memory64.wat @@ -3,7 +3,7 @@ ;; Start with 1 page. (memory i64 1) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; 1. Perform a store using a 64-bit address. ;; Even if the value is small (0), the type MUST be i64. i64.const 0 ;; Address (64-bit) @@ -17,5 +17,5 @@ i64.eq ;; Returns i32 (1 if true) ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_end_of_word_over_limit.wat b/src/test/app/wasm_fixtures/wat/memory_end_of_word_over_limit.wat index dc5427563f..855307ddf4 100644 --- a/src/test/app/wasm_fixtures/wat/memory_end_of_word_over_limit.wat +++ b/src/test/app/wasm_fixtures/wat/memory_end_of_word_over_limit.wat @@ -24,5 +24,5 @@ ) ;; Export the function so you can call it from your host (JS, Python, etc.) - (export "finish" (func $test_straddle)) + (export "escrow_finish" (func $test_straddle)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_grow_0_page_more_than_8MB.wat b/src/test/app/wasm_fixtures/wat/memory_grow_0_page_more_than_8MB.wat index d9c149530f..777f3062bf 100644 --- a/src/test/app/wasm_fixtures/wat/memory_grow_0_page_more_than_8MB.wat +++ b/src/test/app/wasm_fixtures/wat/memory_grow_0_page_more_than_8MB.wat @@ -25,5 +25,5 @@ i32.const 1 ) - (export "finish" (func $try_grow_beyond_limit)) + (export "escrow_finish" (func $try_grow_beyond_limit)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_grow_0_to_1.wat b/src/test/app/wasm_fixtures/wat/memory_grow_0_to_1.wat index ff822ffbdc..54a4193927 100644 --- a/src/test/app/wasm_fixtures/wat/memory_grow_0_to_1.wat +++ b/src/test/app/wasm_fixtures/wat/memory_grow_0_to_1.wat @@ -22,5 +22,5 @@ i32.const 1 ) - (export "finish" (func $grow_from_zero)) + (export "escrow_finish" (func $grow_from_zero)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_grow_1_page_more_than_8MB.wat b/src/test/app/wasm_fixtures/wat/memory_grow_1_page_more_than_8MB.wat index 4a245a521c..540b112178 100644 --- a/src/test/app/wasm_fixtures/wat/memory_grow_1_page_more_than_8MB.wat +++ b/src/test/app/wasm_fixtures/wat/memory_grow_1_page_more_than_8MB.wat @@ -25,5 +25,5 @@ i32.const 1 ) - (export "finish" (func $try_grow_beyond_limit)) + (export "escrow_finish" (func $try_grow_beyond_limit)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_grow_1_to_0.wat b/src/test/app/wasm_fixtures/wat/memory_grow_1_to_0.wat index fa25154f09..cc4d161153 100644 --- a/src/test/app/wasm_fixtures/wat/memory_grow_1_to_0.wat +++ b/src/test/app/wasm_fixtures/wat/memory_grow_1_to_0.wat @@ -29,5 +29,5 @@ i32.const 1 ) - (export "finish" (func $grow_negative)) + (export "escrow_finish" (func $grow_negative)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_init_1_page_more_than_8MB.wat b/src/test/app/wasm_fixtures/wat/memory_init_1_page_more_than_8MB.wat index 5fd1d09ed1..f1bbee6c61 100644 --- a/src/test/app/wasm_fixtures/wat/memory_init_1_page_more_than_8MB.wat +++ b/src/test/app/wasm_fixtures/wat/memory_init_1_page_more_than_8MB.wat @@ -23,5 +23,5 @@ i32.const 1 ) - (export "finish" (func $access_last_byte)) + (export "escrow_finish" (func $access_last_byte)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_last_byte_of_8MB.wat b/src/test/app/wasm_fixtures/wat/memory_last_byte_of_8MB.wat index a59ec06294..e00f5e1239 100644 --- a/src/test/app/wasm_fixtures/wat/memory_last_byte_of_8MB.wat +++ b/src/test/app/wasm_fixtures/wat/memory_last_byte_of_8MB.wat @@ -22,5 +22,5 @@ i32.const 1 ) - (export "finish" (func $access_last_byte)) + (export "escrow_finish" (func $access_last_byte)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_negative_address.wat b/src/test/app/wasm_fixtures/wat/memory_negative_address.wat index 02c9cb5a3b..6e26a07108 100644 --- a/src/test/app/wasm_fixtures/wat/memory_negative_address.wat +++ b/src/test/app/wasm_fixtures/wat/memory_negative_address.wat @@ -19,5 +19,5 @@ i32.const 1 ) - (export "finish" (func $access_last_byte)) + (export "escrow_finish" (func $access_last_byte)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_offset_over_limit.wat b/src/test/app/wasm_fixtures/wat/memory_offset_over_limit.wat index d502ddf291..20a401e3d2 100644 --- a/src/test/app/wasm_fixtures/wat/memory_offset_over_limit.wat +++ b/src/test/app/wasm_fixtures/wat/memory_offset_over_limit.wat @@ -23,5 +23,5 @@ i32.const 1 ) - (export "finish" (func $test_offset_overflow)) + (export "escrow_finish" (func $test_offset_overflow)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_pointer_at_limit.wat b/src/test/app/wasm_fixtures/wat/memory_pointer_at_limit.wat index c72cd43739..e4432e6fdd 100644 --- a/src/test/app/wasm_fixtures/wat/memory_pointer_at_limit.wat +++ b/src/test/app/wasm_fixtures/wat/memory_pointer_at_limit.wat @@ -17,6 +17,6 @@ i32.const 1 ) - ;; Export as "finish" as requested - (export "finish" (func $read_edge)) + ;; Export as "escrow_finish" as requested + (export "escrow_finish" (func $read_edge)) ) diff --git a/src/test/app/wasm_fixtures/wat/memory_pointer_over_limit.wat b/src/test/app/wasm_fixtures/wat/memory_pointer_over_limit.wat index 12f6ea01a2..906468f308 100644 --- a/src/test/app/wasm_fixtures/wat/memory_pointer_over_limit.wat +++ b/src/test/app/wasm_fixtures/wat/memory_pointer_over_limit.wat @@ -18,6 +18,6 @@ i32.const 1 ) - ;; Export as "finish" as requested - (export "finish" (func $read_overflow)) + ;; Export as "escrow_finish" as requested + (export "escrow_finish" (func $read_overflow)) ) diff --git a/src/test/app/wasm_fixtures/wat/multi_memory.wat b/src/test/app/wasm_fixtures/wat/multi_memory.wat index c2f36e253f..67fc5e76aa 100644 --- a/src/test/app/wasm_fixtures/wat/multi_memory.wat +++ b/src/test/app/wasm_fixtures/wat/multi_memory.wat @@ -6,11 +6,11 @@ ;; If multi-memory is disabled, this line causes a validation error (max 1 memory). (memory 1) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; Query size of Memory Index 1. ;; Should return 1 (success). memory.size 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_bulk_memory.wat b/src/test/app/wasm_fixtures/wat/proposal_bulk_memory.wat index 1010c60a61..ce59868ce6 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_bulk_memory.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_bulk_memory.wat @@ -21,5 +21,5 @@ i32.eq ) - (export "finish" (func $test_bulk_ops)) + (export "escrow_finish" (func $test_bulk_ops)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_extended_const.wat b/src/test/app/wasm_fixtures/wat/proposal_extended_const.wat index 1b24f8ff45..e296a468f0 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_extended_const.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_extended_const.wat @@ -4,12 +4,12 @@ ;; This proposal allows (i32.add (i32.const X) (i32.const Y)). (global $g i32 (i32.add (i32.const 10) (i32.const 32))) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; 2. verify the global equals 42 global.get $g i32.const 42 i32.eq ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_float_to_int.wat b/src/test/app/wasm_fixtures/wat/proposal_float_to_int.wat index 3d52bfa399..367735f5e7 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_float_to_int.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_float_to_int.wat @@ -14,5 +14,5 @@ i32.eq ) - (export "finish" (func $test_saturation)) + (export "escrow_finish" (func $test_saturation)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_gc_struct_new.wat b/src/test/app/wasm_fixtures/wat/proposal_gc_struct_new.wat index b9a1e5c519..bc33b7fada 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_gc_struct_new.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_gc_struct_new.wat @@ -3,7 +3,7 @@ (module (type (;0;) (func (result i32))) (type (;1;) (struct (field (mut i32)) (field (mut i32)))) - (export "finish" (func 0)) + (export "escrow_finish" (func 0)) (func (;0;) (type 0) (result i32) struct.new_default 1 drop diff --git a/src/test/app/wasm_fixtures/wat/proposal_multi_value.wat b/src/test/app/wasm_fixtures/wat/proposal_multi_value.wat index 30dda4ce12..23f1691872 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_multi_value.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_multi_value.wat @@ -5,7 +5,7 @@ i32.const 20 ) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; Call pushes [10, 20] onto the stack call $get_numbers @@ -18,5 +18,5 @@ end ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_mutable_global.wat b/src/test/app/wasm_fixtures/wat/proposal_mutable_global.wat index 2b1b5ff648..82a5d35203 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_mutable_global.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_mutable_global.wat @@ -6,7 +6,7 @@ ;; In strict MVP, exported globals had to be immutable (const). (export "counter" (global $counter)) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; 1. Get current value global.get $counter @@ -21,5 +21,5 @@ i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_ref_types.wat b/src/test/app/wasm_fixtures/wat/proposal_ref_types.wat index c339b9176f..8cba4edf29 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_ref_types.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_ref_types.wat @@ -14,5 +14,5 @@ i32.const 1 ) - (export "finish" (func $test_ref_types)) + (export "escrow_finish" (func $test_ref_types)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_sign_ext.wat b/src/test/app/wasm_fixtures/wat/proposal_sign_ext.wat index ab9061fbb1..9c8fdd1980 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_sign_ext.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_sign_ext.wat @@ -14,5 +14,5 @@ i32.eq ) - (export "finish" (func $test_sign_ext)) + (export "escrow_finish" (func $test_sign_ext)) ) diff --git a/src/test/app/wasm_fixtures/wat/proposal_tail_call.wat b/src/test/app/wasm_fixtures/wat/proposal_tail_call.wat index f2c883931a..193fb0aeb2 100644 --- a/src/test/app/wasm_fixtures/wat/proposal_tail_call.wat +++ b/src/test/app/wasm_fixtures/wat/proposal_tail_call.wat @@ -4,12 +4,12 @@ i32.const 1 ) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; Try to use the 'return_call' instruction (Opcode 0x12) ;; If Tail Call proposal is disabled, this fails to Compile/Validate. ;; If enabled, it jumps to $target, which returns 1. return_call $target ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/start_loop.wat b/src/test/app/wasm_fixtures/wat/start_loop.wat index c00d173ea4..241774e53e 100644 --- a/src/test/app/wasm_fixtures/wat/start_loop.wat +++ b/src/test/app/wasm_fixtures/wat/start_loop.wat @@ -7,13 +7,13 @@ ) ;; Function 2: Finish - (func $finish (result i32) + (func $escrow_finish (result i32) i32.const 1 ) ;; 1. EXPORT the functions (optional, if you want to call them later) (export "start" (func $run_forever)) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ;; 2. The special start section ;; This tells the VM: "Run function $run_forever immediately diff --git a/src/test/app/wasm_fixtures/wat/table_0_elements.wat b/src/test/app/wasm_fixtures/wat/table_0_elements.wat index 7f2d1abc64..9b8a5408d2 100644 --- a/src/test/app/wasm_fixtures/wat/table_0_elements.wat +++ b/src/test/app/wasm_fixtures/wat/table_0_elements.wat @@ -3,8 +3,8 @@ (table 0 funcref) ;; Standard finish function - (func $finish (result i32) + (func $escrow_finish (result i32) i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/table_2_tables.wat b/src/test/app/wasm_fixtures/wat/table_2_tables.wat index fd007f410a..4e4e013ce3 100644 --- a/src/test/app/wasm_fixtures/wat/table_2_tables.wat +++ b/src/test/app/wasm_fixtures/wat/table_2_tables.wat @@ -16,9 +16,9 @@ ;; Initialize Table 1 at index 0 (elem (table $t1) (i32.const 0) $dummy) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; If we successfully loaded a module with 2 tables, return 1. i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/table_64_elements.wat b/src/test/app/wasm_fixtures/wat/table_64_elements.wat index 3ff990b228..3221571fe9 100644 --- a/src/test/app/wasm_fixtures/wat/table_64_elements.wat +++ b/src/test/app/wasm_fixtures/wat/table_64_elements.wat @@ -18,8 +18,8 @@ ) ;; Standard finish function - (func $finish (result i32) + (func $escrow_finish (result i32) i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/table_65_elements.wat b/src/test/app/wasm_fixtures/wat/table_65_elements.wat index db3efa0a18..aa0688c56f 100644 --- a/src/test/app/wasm_fixtures/wat/table_65_elements.wat +++ b/src/test/app/wasm_fixtures/wat/table_65_elements.wat @@ -18,8 +18,8 @@ $dummy ;; 65 (The one that breaks the camel's back) ) - (func $finish (result i32) + (func $escrow_finish (result i32) i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/table_uint_max.wat b/src/test/app/wasm_fixtures/wat/table_uint_max.wat index 31c15b8be2..23908611c8 100644 --- a/src/test/app/wasm_fixtures/wat/table_uint_max.wat +++ b/src/test/app/wasm_fixtures/wat/table_uint_max.wat @@ -7,9 +7,9 @@ ;; Note that using -1 as the table size cannot be parsed by wasm-tools or wat2wasm (table 0xFFFFFFFF funcref) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; If the module loads despite the massive table, return 1. i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/trap_divide_by_0.wat b/src/test/app/wasm_fixtures/wat/trap_divide_by_0.wat index 8fda7bdae0..6f8754ec8f 100644 --- a/src/test/app/wasm_fixtures/wat/trap_divide_by_0.wat +++ b/src/test/app/wasm_fixtures/wat/trap_divide_by_0.wat @@ -1,5 +1,5 @@ (module - (func $finish (export "finish") (result i32) + (func $escrow_finish (export "escrow_finish") (result i32) ;; Setup for Requirement 2: Divide an i32 by 0 i32.const 42 ;; Push numerator i32.const 0 ;; Push denominator (0) diff --git a/src/test/app/wasm_fixtures/wat/trap_func_signature_mismatch.wat b/src/test/app/wasm_fixtures/wat/trap_func_signature_mismatch.wat index a712d1ac8d..fd20f6176a 100644 --- a/src/test/app/wasm_fixtures/wat/trap_func_signature_mismatch.wat +++ b/src/test/app/wasm_fixtures/wat/trap_func_signature_mismatch.wat @@ -16,7 +16,7 @@ ;; Put Type A function into Table[0] (elem (i32.const 0) $void_func) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; Attempt to call Index 0, but CLAIM we expect Type B (result i32). ;; The function at Index 0 matches Type A. ;; TRAP: "indirect call type mismatch" @@ -29,5 +29,5 @@ call_indirect (type $type_i32) ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/trap_int_overflow.wat b/src/test/app/wasm_fixtures/wat/trap_int_overflow.wat index 810236df79..208e5bd211 100644 --- a/src/test/app/wasm_fixtures/wat/trap_int_overflow.wat +++ b/src/test/app/wasm_fixtures/wat/trap_int_overflow.wat @@ -14,5 +14,5 @@ i32.div_s ) - (export "finish" (func $test_int_overflow)) + (export "escrow_finish" (func $test_int_overflow)) ) diff --git a/src/test/app/wasm_fixtures/wat/trap_null_call.wat b/src/test/app/wasm_fixtures/wat/trap_null_call.wat index f806d922f7..63173303c5 100644 --- a/src/test/app/wasm_fixtures/wat/trap_null_call.wat +++ b/src/test/app/wasm_fixtures/wat/trap_null_call.wat @@ -5,7 +5,7 @@ (type $t (func (result i32))) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; Call Index 0. ;; Bounds check passes (0 < 1). ;; Null check fails. @@ -18,5 +18,5 @@ call_indirect (type $t) ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/trap_unreachable.wat b/src/test/app/wasm_fixtures/wat/trap_unreachable.wat index 4bc15569fc..3d8fe89f5b 100644 --- a/src/test/app/wasm_fixtures/wat/trap_unreachable.wat +++ b/src/test/app/wasm_fixtures/wat/trap_unreachable.wat @@ -1,5 +1,5 @@ (module - (func $finish (result i32) + (func $escrow_finish (result i32) ;; This instruction explicitly causes a trap. ;; It consumes no fuel (beyond the instruction itself) and stops execution. unreachable @@ -8,5 +8,5 @@ i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/wasi_get_time.wat b/src/test/app/wasm_fixtures/wat/wasi_get_time.wat index 049ecf0be1..6b525067a8 100644 --- a/src/test/app/wasm_fixtures/wat/wasi_get_time.wat +++ b/src/test/app/wasm_fixtures/wat/wasi_get_time.wat @@ -8,7 +8,7 @@ (memory 1) (export "memory" (memory 0)) - (func $finish (result i32) + (func $escrow_finish (result i32) ;; We will store the timestamp (a 64-bit integer) at address 0. ;; No setup required in memory beforehand! @@ -34,5 +34,5 @@ end ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/wasi_print.wat b/src/test/app/wasm_fixtures/wat/wasi_print.wat index 18e8a088f4..511c5ba724 100644 --- a/src/test/app/wasm_fixtures/wat/wasi_print.wat +++ b/src/test/app/wasm_fixtures/wat/wasi_print.wat @@ -25,7 +25,7 @@ ;; Encoded in little-endian: 06 00 00 00 (data (i32.const 4) "\06\00\00\00") - (func $finish (result i32) + (func $escrow_finish (result i32) (local $nwritten_ptr i32) ;; We will ask WASI to write the "number of bytes written" to address 24 @@ -55,5 +55,5 @@ end ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) ) diff --git a/src/test/app/wasm_fixtures/wat/wide_arithmetic.wat b/src/test/app/wasm_fixtures/wat/wide_arithmetic.wat index cd796162ae..13b1ab4836 100644 --- a/src/test/app/wasm_fixtures/wat/wide_arithmetic.wat +++ b/src/test/app/wasm_fixtures/wat/wide_arithmetic.wat @@ -1,5 +1,5 @@ (module - (func $finish (result i32) + (func $escrow_finish (result i32) ;; 1. Push operands i64.const 1 i64.const 2 @@ -18,5 +18,5 @@ i32.const 1 ) - (export "finish" (func $finish)) + (export "escrow_finish" (func $escrow_finish)) )