diff --git a/cspell.config.yaml b/cspell.config.yaml index 6dcf17cb5e..5cb2dd35a8 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -329,6 +329,7 @@ words: - wthread - xbridge - xchain + - xfloat - ximinez - XMACRO - xrpkuwait diff --git a/src/libxrpl/tx/wasm/WasmVM.cpp b/src/libxrpl/tx/wasm/WasmVM.cpp index 0f7f947a0a..97b44dba43 100644 --- a/src/libxrpl/tx/wasm/WasmVM.cpp +++ b/src/libxrpl/tx/wasm/WasmVM.cpp @@ -31,76 +31,76 @@ static void setCommonHostFunctions(HostFunctions& hfs, ImportVec& i) { // clang-format off - WASM_IMPORT_FUNC2(i, getLedgerSqn, "get_ledger_sqn", hfs, 60); - WASM_IMPORT_FUNC2(i, getParentLedgerTime, "get_parent_ledger_time", hfs, 60); - WASM_IMPORT_FUNC2(i, getParentLedgerHash, "get_parent_ledger_hash", hfs, 60); - WASM_IMPORT_FUNC2(i, getBaseFee, "get_base_fee", hfs, 60); - WASM_IMPORT_FUNC2(i, isAmendmentEnabled, "amendment_enabled", hfs, 100); + WASM_IMPORT_FUNC2(i, getLedgerSqn, "ldgr_index", hfs, 60); + WASM_IMPORT_FUNC2(i, getParentLedgerTime, "parent_ldgr_time", hfs, 60); + WASM_IMPORT_FUNC2(i, getParentLedgerHash, "parent_ldgr_hash", hfs, 60); + WASM_IMPORT_FUNC2(i, getBaseFee, "base_fee", hfs, 60); + WASM_IMPORT_FUNC2(i, isAmendmentEnabled, "amendment_enabled", hfs, 100); - WASM_IMPORT_FUNC2(i, cacheLedgerObj, "cache_ledger_obj", hfs, 5'000); - WASM_IMPORT_FUNC2(i, getTxField, "get_tx_field", hfs, 70); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjField, "get_current_ledger_obj_field", hfs, 70); - WASM_IMPORT_FUNC2(i, getLedgerObjField, "get_ledger_obj_field", hfs, 70); - WASM_IMPORT_FUNC2(i, getTxNestedField, "get_tx_nested_field", hfs, 110); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedField, "get_current_ledger_obj_nested_field", hfs, 110); - WASM_IMPORT_FUNC2(i, getLedgerObjNestedField, "get_ledger_obj_nested_field", hfs, 110); - WASM_IMPORT_FUNC2(i, getTxArrayLen, "get_tx_array_len", hfs, 40); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjArrayLen, "get_current_ledger_obj_array_len", hfs, 40); - WASM_IMPORT_FUNC2(i, getLedgerObjArrayLen, "get_ledger_obj_array_len", hfs, 40); - WASM_IMPORT_FUNC2(i, getTxNestedArrayLen, "get_tx_nested_array_len", hfs, 70); - WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedArrayLen, "get_current_ledger_obj_nested_array_len", hfs, 70); - WASM_IMPORT_FUNC2(i, getLedgerObjNestedArrayLen, "get_ledger_obj_nested_array_len", hfs, 70); + WASM_IMPORT_FUNC2(i, cacheLedgerObj, "cache_le", hfs, 5'000); + WASM_IMPORT_FUNC2(i, getTxField, "tx_field", hfs, 70); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjField, "home_le_field", hfs, 70); + WASM_IMPORT_FUNC2(i, getLedgerObjField, "le_field", hfs, 70); + WASM_IMPORT_FUNC2(i, getTxNestedField, "tx_inner", hfs, 110); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedField, "home_le_inner", hfs, 110); + WASM_IMPORT_FUNC2(i, getLedgerObjNestedField, "le_inner", hfs, 110); + WASM_IMPORT_FUNC2(i, getTxArrayLen, "tx_arr_len", hfs, 40); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjArrayLen, "home_le_arr_len", hfs, 40); + WASM_IMPORT_FUNC2(i, getLedgerObjArrayLen, "le_arr_len", hfs, 40); + WASM_IMPORT_FUNC2(i, getTxNestedArrayLen, "tx_inner_arr_len", hfs, 70); + WASM_IMPORT_FUNC2(i, getCurrentLedgerObjNestedArrayLen, "home_le_inner_arr_len", hfs, 70); + WASM_IMPORT_FUNC2(i, getLedgerObjNestedArrayLen, "le_inner_arr_len", hfs, 70); - WASM_IMPORT_FUNC2(i, checkSignature, "check_sig", hfs, 300); - WASM_IMPORT_FUNC2(i, computeSha512HalfHash, "compute_sha512_half", hfs, 2000); + WASM_IMPORT_FUNC2(i, checkSignature, "check_sig", hfs, 300); + WASM_IMPORT_FUNC2(i, computeSha512HalfHash, "sha512_half", hfs, 2000); - WASM_IMPORT_FUNC2(i, accountKeylet, "account_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, ammKeylet, "amm_keylet", hfs, 450); - WASM_IMPORT_FUNC2(i, checkKeylet, "check_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, credentialKeylet, "credential_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, delegateKeylet, "delegate_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, depositPreauthKeylet, "deposit_preauth_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, didKeylet, "did_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, escrowKeylet, "escrow_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, lineKeylet, "line_keylet", hfs, 400); - WASM_IMPORT_FUNC2(i, mptIssuanceKeylet, "mpt_issuance_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, mptokenKeylet, "mptoken_keylet", hfs, 500); - WASM_IMPORT_FUNC2(i, nftOfferKeylet, "nft_offer_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, offerKeylet, "offer_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, oracleKeylet, "oracle_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, paychanKeylet, "paychan_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, permissionedDomainKeylet, "permissioned_domain_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, signersKeylet, "signers_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, ticketKeylet, "ticket_keylet", hfs, 350); - WASM_IMPORT_FUNC2(i, vaultKeylet, "vault_keylet", hfs, 350); + WASM_IMPORT_FUNC2(i, accountKeylet, "accountroot_id", hfs, 350); + WASM_IMPORT_FUNC2(i, ammKeylet, "amm_id", hfs, 450); + WASM_IMPORT_FUNC2(i, checkKeylet, "check_id", hfs, 350); + WASM_IMPORT_FUNC2(i, credentialKeylet, "credential_id", hfs, 350); + WASM_IMPORT_FUNC2(i, delegateKeylet, "delegate_id", hfs, 350); + WASM_IMPORT_FUNC2(i, depositPreauthKeylet, "deposit_preauth_id", hfs, 350); + WASM_IMPORT_FUNC2(i, didKeylet, "did_id", hfs, 350); + WASM_IMPORT_FUNC2(i, escrowKeylet, "escrow_id", hfs, 350); + WASM_IMPORT_FUNC2(i, lineKeylet, "trustline_id", hfs, 400); + WASM_IMPORT_FUNC2(i, mptIssuanceKeylet, "mpt_issuance_id", hfs, 350); + WASM_IMPORT_FUNC2(i, mptokenKeylet, "mptoken_id", hfs, 500); + WASM_IMPORT_FUNC2(i, nftOfferKeylet, "nft_offer_id", hfs, 350); + WASM_IMPORT_FUNC2(i, offerKeylet, "offer_id", hfs, 350); + WASM_IMPORT_FUNC2(i, oracleKeylet, "oracle_id", hfs, 350); + WASM_IMPORT_FUNC2(i, paychanKeylet, "paychan_id", hfs, 350); + WASM_IMPORT_FUNC2(i, permissionedDomainKeylet, "permissioned_domain_id", hfs, 350); + WASM_IMPORT_FUNC2(i, signersKeylet, "signers_id", hfs, 350); + WASM_IMPORT_FUNC2(i, ticketKeylet, "ticket_id", hfs, 350); + WASM_IMPORT_FUNC2(i, vaultKeylet, "vault_id", hfs, 350); - WASM_IMPORT_FUNC2(i, getNFT, "get_nft", hfs, 5'000); - WASM_IMPORT_FUNC2(i, getNFTIssuer, "get_nft_issuer", hfs, 70); - WASM_IMPORT_FUNC2(i, getNFTTaxon, "get_nft_taxon", hfs, 60); - WASM_IMPORT_FUNC2(i, getNFTFlags, "get_nft_flags", hfs, 60); - WASM_IMPORT_FUNC2(i, getNFTTransferFee, "get_nft_transfer_fee", hfs, 60); - WASM_IMPORT_FUNC2(i, getNFTSerial, "get_nft_serial", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFT, "nft_uri", hfs, 5'000); + WASM_IMPORT_FUNC2(i, getNFTIssuer, "nft_issuer", hfs, 70); + WASM_IMPORT_FUNC2(i, getNFTTaxon, "nft_taxon", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFTFlags, "nft_flags", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFTTransferFee, "nft_xfer_fee", hfs, 60); + WASM_IMPORT_FUNC2(i, getNFTSerial, "nft_serial", hfs, 60); - WASM_IMPORT_FUNC (i, trace, hfs, 500); - WASM_IMPORT_FUNC2(i, traceNum, "trace_num", hfs, 500); - WASM_IMPORT_FUNC2(i, traceAccount, "trace_account", hfs, 500); - WASM_IMPORT_FUNC2(i, traceFloat, "trace_opaque_float", hfs, 500); - WASM_IMPORT_FUNC2(i, traceAmount, "trace_amount", hfs, 500); + WASM_IMPORT_FUNC (i, trace, hfs, 500); + WASM_IMPORT_FUNC2(i, traceNum, "trace_num", hfs, 500); + WASM_IMPORT_FUNC2(i, traceAccount, "trace_acct", hfs, 500); + WASM_IMPORT_FUNC2(i, traceFloat, "trace_xfloat", hfs, 500); + WASM_IMPORT_FUNC2(i, traceAmount, "trace_amt", hfs, 500); - WASM_IMPORT_FUNC2(i, floatFromInt, "float_from_int", hfs, 100); - WASM_IMPORT_FUNC2(i, floatFromUint, "float_from_uint", hfs, 130); - WASM_IMPORT_FUNC2(i, floatFromSTAmount, "float_from_stamount", hfs, 150); - WASM_IMPORT_FUNC2(i, floatFromSTNumber, "float_from_stnumber", hfs, 150); - WASM_IMPORT_FUNC2(i, floatToInt, "float_to_int", hfs, 130); - WASM_IMPORT_FUNC2(i, floatToMantExp, "float_to_mant_exp", hfs, 130); - WASM_IMPORT_FUNC2(i, floatFromMantExp, "float_from_mant_exp", hfs, 100); - WASM_IMPORT_FUNC2(i, floatCompare, "float_compare", hfs, 80); - WASM_IMPORT_FUNC2(i, floatAdd, "float_add", hfs, 160); - WASM_IMPORT_FUNC2(i, floatSubtract, "float_subtract", hfs, 160); - WASM_IMPORT_FUNC2(i, floatMultiply, "float_multiply", hfs, 300); - WASM_IMPORT_FUNC2(i, floatDivide, "float_divide", hfs, 300); - WASM_IMPORT_FUNC2(i, floatRoot, "float_root", hfs, 5'500); - WASM_IMPORT_FUNC2(i, floatPower, "float_pow", hfs, 5'500); + WASM_IMPORT_FUNC2(i, floatFromInt, "float_from_int", hfs, 100); + WASM_IMPORT_FUNC2(i, floatFromUint, "float_from_uint", hfs, 130); + WASM_IMPORT_FUNC2(i, floatFromSTAmount, "float_from_stamount", hfs, 150); + WASM_IMPORT_FUNC2(i, floatFromSTNumber, "float_from_stnumber", hfs, 150); + WASM_IMPORT_FUNC2(i, floatToInt, "float_to_int", hfs, 130); + WASM_IMPORT_FUNC2(i, floatToMantExp, "float_to_mant_exp", hfs, 130); + WASM_IMPORT_FUNC2(i, floatFromMantExp, "float_from_mant_exp", hfs, 100); + WASM_IMPORT_FUNC2(i, floatCompare, "float_cmp", hfs, 80); + WASM_IMPORT_FUNC2(i, floatAdd, "float_add", hfs, 160); + WASM_IMPORT_FUNC2(i, floatSubtract, "float_sub", hfs, 160); + WASM_IMPORT_FUNC2(i, floatMultiply, "float_mult", hfs, 300); + WASM_IMPORT_FUNC2(i, floatDivide, "float_div", hfs, 300); + WASM_IMPORT_FUNC2(i, floatRoot, "float_root", hfs, 5'500); + WASM_IMPORT_FUNC2(i, floatPower, "float_pow", hfs, 5'500); // clang-format on } @@ -110,7 +110,7 @@ createWasmImport(HostFunctions& hfs) ImportVec i; setCommonHostFunctions(hfs, i); - WASM_IMPORT_FUNC2(i, updateData, "update_data", hfs, 1000); + WASM_IMPORT_FUNC2(i, updateData, "set_data", hfs, 1000); return i; } diff --git a/src/test/app/HostFuncImpl_test.cpp b/src/test/app/HostFuncImpl_test.cpp index f77cbe8a87..700c706198 100644 --- a/src/test/app/HostFuncImpl_test.cpp +++ b/src/test/app/HostFuncImpl_test.cpp @@ -351,7 +351,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.getLedgerSqn(); WasmValVec params(2), result(1); - auto* trap = ww(&import.at("get_ledger_sqn"), params, result, 0, sizeof(std::uint32_t)); + auto* trap = ww(&import.at("ldgr_index"), params, result, 0, sizeof(std::uint32_t)); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == sizeof(std::uint32_t)) && @@ -379,7 +379,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getParentLedgerTime(); WasmValVec params(2), result(1); auto* trap = - ww(&import.at("get_parent_ledger_time"), params, result, 0, sizeof(std::uint32_t)); + ww(&import.at("parent_ldgr_time"), params, result, 0, sizeof(std::uint32_t)); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == sizeof(std::uint32_t)) && @@ -408,8 +408,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.getParentLedgerHash(); WasmValVec params(2), result(1); - auto* trap = - ww(&import.at("get_parent_ledger_hash"), params, result, 0, uint256::size()); + auto* trap = ww(&import.at("parent_ldgr_hash"), params, result, 0, uint256::size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == uint256::size()); @@ -440,7 +439,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getBaseFee(); { WasmValVec params(2), result(1); - auto* trap = ww(&import.at("get_base_fee"), params, result, 0, sizeof(std::uint32_t)); + auto* trap = ww(&import.at("base_fee"), params, result, 0, sizeof(std::uint32_t)); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == sizeof(std::uint32_t)) && @@ -534,8 +533,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), -1); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), -1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -546,8 +544,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 257); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 257); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -558,8 +555,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, dummyEscrow.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 0); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -571,8 +567,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 0); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); @@ -584,8 +579,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.cacheLedgerObj(accountKeylet.key, i); WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), i); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), i); if (!(BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECTS( @@ -599,8 +593,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 0); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -621,8 +614,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.cacheLedgerObj(accountKeylet.key, 0); WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 0); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 0); if (!(BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECTS( @@ -636,8 +628,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = - ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 0); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -682,7 +673,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_tx_field"), + ww(&import.at("tx_field"), params, result, sfAccount.getCode(), @@ -699,7 +690,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_tx_field"), + ww(&import.at("tx_field"), params, result, sfOwner.getCode(), @@ -716,12 +707,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_tx_field"), - params, - result, - sfTransactionType.getCode(), - 0, - 256); + ww(&import.at("tx_field"), params, result, sfTransactionType.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 > 0); @@ -733,8 +719,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxField(sfOfferSequence); { WasmValVec params(3), result(1); - auto* trap = ww( - &import.at("get_tx_field"), params, result, sfOfferSequence.getCode(), 0, 256); + auto* trap = + ww(&import.at("tx_field"), params, result, sfOfferSequence.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 > 0); @@ -747,7 +733,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_tx_field"), params, result, sfDestination.getCode(), 0, 256); + ww(&import.at("tx_field"), params, result, sfDestination.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -757,8 +743,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxField(sfMemos); { WasmValVec params(3), result(1); - auto* trap = - ww(&import.at("get_tx_field"), params, result, sfMemos.getCode(), 0, 256); + auto* trap = ww(&import.at("tx_field"), params, result, sfMemos.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -768,8 +753,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxField(sfCredentialIDs); { WasmValVec params(3), result(1); - auto* trap = ww( - &import.at("get_tx_field"), params, result, sfCredentialIDs.getCode(), 0, 256); + auto* trap = + ww(&import.at("tx_field"), params, result, sfCredentialIDs.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECTS( @@ -781,7 +766,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_tx_field"), params, result, kSfInvalid.getCode(), 0, 256); + ww(&import.at("tx_field"), params, result, kSfInvalid.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -792,7 +777,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_tx_field"), params, result, kSfGeneric.getCode(), 0, 256); + ww(&import.at("tx_field"), params, result, kSfGeneric.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -817,8 +802,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxField(sfAsset); { WasmValVec params(3), result(1); - auto* trap = - ww(&import.at("get_tx_field"), params, result, sfAsset.getCode(), 0, 256); + auto* trap = ww(&import.at("tx_field"), params, result, sfAsset.getCode(), 0, 256); std::vector const expectedAsset(20, 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && @@ -831,8 +815,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxField(sfAsset2); { WasmValVec params(3), result(1); - auto* trap = - ww(&import.at("get_tx_field"), params, result, sfAsset2.getCode(), 0, 256); + auto* trap = ww(&import.at("tx_field"), params, result, sfAsset2.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 > 0); @@ -860,8 +843,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxField(sfAsset); { WasmValVec params(3), result(1); - auto* trap = - ww(&import.at("get_tx_field"), params, result, sfAsset.getCode(), 0, 256); + auto* trap = ww(&import.at("tx_field"), params, result, sfAsset.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -875,8 +857,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxField(sfAsset2); { WasmValVec params(3), result(1); - auto* trap = - ww(&import.at("get_tx_field"), params, result, sfAsset2.getCode(), 0, 256); + auto* trap = ww(&import.at("tx_field"), params, result, sfAsset2.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -905,7 +886,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_tx_field"), params, result, sfAssetScale.getCode(), 0, 256); + ww(&import.at("tx_field"), params, result, sfAssetScale.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -948,12 +929,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_current_ledger_obj_field"), - params, - result, - sfAccount.getCode(), - 0, - 256); + ww(&import.at("home_le_field"), params, result, sfAccount.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECTS(result[0].of.i32 > 0, std::to_string(result[0].of.i32))) @@ -968,12 +944,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_current_ledger_obj_field"), - params, - result, - sfAmount.getCode(), - 0, - 256); + ww(&import.at("home_le_field"), params, result, sfAmount.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -988,12 +959,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_current_ledger_obj_field"), - params, - result, - sfPreviousTxnID.getCode(), - 0, - 256); + ww(&import.at("home_le_field"), params, result, sfPreviousTxnID.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -1007,13 +973,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getCurrentLedgerObjField(sfOwner); { WasmValVec params(3), result(1); - auto* trap = - ww(&import.at("get_current_ledger_obj_field"), - params, - result, - sfOwner.getCode(), - 0, - 256); + auto* trap = ww(&import.at("home_le_field"), params, result, sfOwner.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1032,12 +992,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); auto* trap = - ww(&import2.at("get_current_ledger_obj_field"), - params, - result, - sfAccount.getCode(), - 0, - 256); + ww(&import2.at("home_le_field"), params, result, sfAccount.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1074,7 +1029,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, accountKeylet.key.data(), uint256::size()); - auto* trap = ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 1); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); @@ -1083,8 +1038,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerObjField(1, sfAccount); { WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_ledger_obj_field"), params, result, 1, sfAccount.getCode(), 0, 256); + auto* trap = ww(&import.at("le_field"), params, result, 1, sfAccount.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECTS(result[0].of.i32 > 0, std::to_string(result[0].of.i32))) @@ -1098,8 +1052,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerObjField(1, sfBalance); { WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_ledger_obj_field"), params, result, 1, sfBalance.getCode(), 0, 256); + auto* trap = ww(&import.at("le_field"), params, result, 1, sfBalance.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -1113,8 +1066,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerObjField(0, sfAccount); { WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_ledger_obj_field"), params, result, 0, sfAccount.getCode(), 0, 256); + auto* trap = ww(&import.at("le_field"), params, result, 0, sfAccount.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1125,13 +1077,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_ledger_obj_field"), - params, - result, - 257, - sfAccount.getCode(), - 0, - 256); + ww(&import.at("le_field"), params, result, 257, sfAccount.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1141,8 +1087,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerObjField(2, sfAccount); { WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_ledger_obj_field"), params, result, 2, sfAccount.getCode(), 0, 256); + auto* trap = ww(&import.at("le_field"), params, result, 2, sfAccount.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1152,8 +1097,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerObjField(1, sfOwner); { WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_ledger_obj_field"), params, result, 1, sfOwner.getCode(), 0, 256); + auto* trap = ww(&import.at("le_field"), params, result, 1, sfOwner.getCode(), 0, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1206,7 +1150,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_tx_nested_field"), + ww(&import.at("tx_inner"), params, result, 0, @@ -1235,7 +1179,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_tx_nested_field"), + ww(&import.at("tx_inner"), params, result, 0, @@ -1261,7 +1205,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_tx_nested_field"), + ww(&import.at("tx_inner"), params, result, 0, @@ -1287,8 +1231,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), sizeof(int32_t) + 1); WasmValVec params(4), result(1); - auto* trap = - ww(&import.at("get_tx_nested_field"), params, result, 1, sizeof(int32_t), 256, 256); + auto* trap = ww(&import.at("tx_inner"), params, result, 1, sizeof(int32_t), 256, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECTS(result[0].of.i32 > 0, std::to_string(result[0].of.i32))) @@ -1306,7 +1249,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); // hfs.getTxNestedField(locator); auto* trap = - ww(&import.at("get_tx_nested_field"), + ww(&import.at("tx_inner"), params, result, 0, @@ -1433,7 +1376,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), 3); WasmValVec params(4), result(1); - auto* trap = ww(&import.at("get_tx_nested_field"), params, result, 0, 3, 256, 256); + auto* trap = ww(&import.at("tx_inner"), params, result, 0, 3, 256, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1474,7 +1417,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_current_ledger_obj_nested_field"), + ww(&import.at("home_le_inner"), params, result, 0, @@ -1498,7 +1441,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); // hfs.getCurrentLedgerObjNestedField(locator); auto* trap = - ww(&import.at("get_current_ledger_obj_nested_field"), + ww(&import.at("home_le_inner"), params, result, 0, @@ -1530,8 +1473,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // Locator for empty locator { WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_current_ledger_obj_nested_field"), params, result, 0, 0, 256, 256); + auto* trap = ww(&import.at("home_le_inner"), params, result, 0, 0, 256, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1545,8 +1487,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, malformedLocatorVec.data(), 3); WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_current_ledger_obj_nested_field"), params, result, 0, 3, 256, 256); + auto* trap = ww(&import.at("home_le_inner"), params, result, 0, 3, 256, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1567,7 +1508,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); auto* trap = - ww(&import2.at("get_current_ledger_obj_nested_field"), + ww(&import2.at("home_le_inner"), params, result, 0, @@ -1611,7 +1552,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, signerListKeylet.key.data(), uint256::size()); - auto* trap = ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 1); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); } @@ -1624,7 +1565,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(5), result(1); auto* trap = - ww(&import.at("get_ledger_obj_nested_field"), + ww(&import.at("le_inner"), params, result, 1, @@ -1650,7 +1591,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(5), result(1); auto* trap = - ww(&import.at("get_ledger_obj_nested_field"), + ww(&import.at("le_inner"), params, result, 1, @@ -1676,7 +1617,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(5), result(1); auto* trap = - ww(&import.at("get_ledger_obj_nested_field"), + ww(&import.at("le_inner"), params, result, 1, @@ -1703,7 +1644,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(5), result(1); auto* trap = - ww(&import.at("get_ledger_obj_nested_field"), + ww(&import.at("le_inner"), params, result, 1, @@ -1730,7 +1671,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(5), result(1); auto* trap = - ww(&import.at("get_ledger_obj_nested_field"), + ww(&import.at("le_inner"), params, result, slot, @@ -1799,8 +1740,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerObjNestedField(1, locator); vrt.setBytes(0, locatorVec.data(), 3); WasmValVec params(5), result(1); - auto* trap = - ww(&import.at("get_ledger_obj_nested_field"), params, result, 1, 0, 3, 256, 256); + auto* trap = ww(&import.at("le_inner"), params, result, 1, 0, 3, 256, 256); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -1854,7 +1794,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxArrayLen(sfMemos); { WasmValVec params(1), result(1); - auto* trap = ww(&import.at("get_tx_array_len"), params, result, sfMemos.getCode()); + auto* trap = ww(&import.at("tx_arr_len"), params, result, sfMemos.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -1865,7 +1805,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxArrayLen(sfAccount); { WasmValVec params(1), result(1); - auto* trap = ww(&import.at("get_tx_array_len"), params, result, sfAccount.getCode()); + auto* trap = ww(&import.at("tx_arr_len"), params, result, sfAccount.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT(result[0].of.i32 == static_cast(HostFunctionError::NoArray)); @@ -1875,7 +1815,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxArrayLen(sfSigners); { WasmValVec params(1), result(1); - auto* trap = ww(&import.at("get_tx_array_len"), params, result, sfSigners.getCode()); + auto* trap = ww(&import.at("tx_arr_len"), params, result, sfSigners.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT( @@ -1886,8 +1826,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getTxArrayLen(sfCredentialIDs); { WasmValVec params(1), result(1); - auto* trap = - ww(&import.at("get_tx_array_len"), params, result, sfCredentialIDs.getCode()); + auto* trap = ww(&import.at("tx_arr_len"), params, result, sfCredentialIDs.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -1922,10 +1861,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(1), result(1); auto* trap = - ww(&import.at("get_current_ledger_obj_array_len"), - params, - result, - sfSignerEntries.getCode()); + ww(&import.at("home_le_arr_len"), params, result, sfSignerEntries.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -1935,8 +1871,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getCurrentLedgerObjArrayLen(sfMemos); { WasmValVec params(1), result(1); - auto* trap = ww( - &import.at("get_current_ledger_obj_array_len"), params, result, sfMemos.getCode()); + auto* trap = ww(&import.at("home_le_arr_len"), params, result, sfMemos.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT( @@ -1947,11 +1882,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getCurrentLedgerObjArrayLen(sfAccount); { WasmValVec params(1), result(1); - auto* trap = - ww(&import.at("get_current_ledger_obj_array_len"), - params, - result, - sfAccount.getCode()); + auto* trap = ww(&import.at("home_le_arr_len"), params, result, sfAccount.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT(result[0].of.i32 == static_cast(HostFunctionError::NoArray)); @@ -1967,8 +1898,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // auto const len = dummyHfs.getCurrentLedgerObjArrayLen(sfMemos); WasmValVec params(1), result(1); - auto* trap = ww( - &import2.at("get_current_ledger_obj_array_len"), params, result, sfMemos.getCode()); + auto* trap = ww(&import2.at("home_le_arr_len"), params, result, sfMemos.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT( @@ -2004,7 +1934,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, signerListKeylet.key.data(), uint256::size()); - auto* trap = ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 1); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); } @@ -2012,12 +1942,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.getLedgerObjArrayLen(1, sfSignerEntries); WasmValVec params(2), result(1); - auto* trap = - ww(&import.at("get_ledger_obj_array_len"), - params, - result, - 1, - sfSignerEntries.getCode()); + auto* trap = ww(&import.at("le_arr_len"), params, result, 1, sfSignerEntries.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); if (BEAST_EXPECT(result[0].of.i32 > 0)) @@ -2029,12 +1954,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.getLedgerObjArrayLen(0, sfSignerEntries); WasmValVec params(2), result(1); - auto* trap = - ww(&import.at("get_ledger_obj_array_len"), - params, - result, - 0, - sfSignerEntries.getCode()); + auto* trap = ww(&import.at("le_arr_len"), params, result, 0, sfSignerEntries.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT(result[0].of.i32 == static_cast(HostFunctionError::SlotOutRange)); @@ -2044,8 +1964,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // Should return error for non-array field // hfs.getLedgerObjArrayLen(1, sfAccount); WasmValVec params(2), result(1); - auto* trap = - ww(&import.at("get_ledger_obj_array_len"), params, result, 1, sfAccount.getCode()); + auto* trap = ww(&import.at("le_arr_len"), params, result, 1, sfAccount.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT(result[0].of.i32 == static_cast(HostFunctionError::NoArray)); @@ -2055,12 +1974,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // Should return error for empty slot // hfs.getLedgerObjArrayLen(2, sfSignerEntries); WasmValVec params(2), result(1); - auto* trap = - ww(&import.at("get_ledger_obj_array_len"), - params, - result, - 2, - sfSignerEntries.getCode()); + auto* trap = ww(&import.at("le_arr_len"), params, result, 2, sfSignerEntries.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT(result[0].of.i32 == static_cast(HostFunctionError::EmptySlot)); @@ -2070,8 +1984,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // Should return error for missing array field // hfs.getLedgerObjArrayLen(1, sfMemos); WasmValVec params(2), result(1); - auto* trap = - ww(&import.at("get_ledger_obj_array_len"), params, result, 1, sfMemos.getCode()); + auto* trap = ww(&import.at("le_arr_len"), params, result, 1, sfMemos.getCode()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32); BEAST_EXPECT( @@ -2111,7 +2024,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(2), result(1); auto* trap = - ww(&import.at("get_tx_nested_array_len"), + ww(&import.at("tx_inner_arr_len"), params, result, 0, @@ -2129,7 +2042,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(2), result(1); auto* trap = - ww(&import.at("get_tx_nested_array_len"), + ww(&import.at("tx_inner_arr_len"), params, result, 0, @@ -2176,7 +2089,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(2), result(1); auto* trap = - ww(&import.at("get_current_ledger_obj_nested_array_len"), + ww(&import.at("home_le_inner_arr_len"), params, result, 0, @@ -2194,7 +2107,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(2), result(1); auto* trap = - ww(&import.at("get_current_ledger_obj_nested_array_len"), + ww(&import.at("home_le_inner_arr_len"), params, result, 0, @@ -2223,7 +2136,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt2.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(2), result(1); auto* trap = - ww(&import2.at("get_current_ledger_obj_nested_array_len"), + ww(&import2.at("home_le_inner_arr_len"), params, result, 0, @@ -2263,7 +2176,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { WasmValVec params(3), result(1); vrt.setBytes(0, signerListKeylet.key.data(), uint256::size()); - auto* trap = ww(&import.at("cache_ledger_obj"), params, result, 0, uint256::size(), 1); + auto* trap = ww(&import.at("cache_le"), params, result, 0, uint256::size(), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); } @@ -2275,7 +2188,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_ledger_obj_nested_array_len"), + ww(&import.at("le_inner_arr_len"), params, result, 1, @@ -2295,7 +2208,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, locatorVec.data(), locatorVec.size() * sizeof(int32_t)); WasmValVec params(3), result(1); auto* trap = - ww(&import.at("get_ledger_obj_nested_array_len"), + ww(&import.at("le_inner_arr_len"), params, result, slot, @@ -2328,7 +2241,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerObjNestedArrayLen(1, malformedLocator); vrt.setBytes(0, locatorVec.data(), 3); WasmValVec params(3), result(1); - auto* trap = ww(&import.at("get_ledger_obj_nested_array_len"), params, result, 1, 0, 3); + auto* trap = ww(&import.at("le_inner_arr_len"), params, result, 1, 0, 3); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -2368,7 +2281,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { vrt.setBytes(0, data.data(), data.size()); WasmValVec params(2), result(1); - auto* trap = ww(&import.at("update_data"), params, result, 0, data.size()); + auto* trap = ww(&import.at("set_data"), params, result, 0, data.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == data.size()); @@ -2381,7 +2294,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { vrt.setBytes(0, bigData.data(), bigData.size()); WasmValVec params(2), result(1); - auto* trap = ww(&import.at("update_data"), params, result, 0, bigData.size()); + auto* trap = ww(&import.at("set_data"), params, result, 0, bigData.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -2568,13 +2481,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, data.data(), data.size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("compute_sha512_half"), - params, - result, - 0, - data.size(), - 256, - uint256::size()); + ww(&import.at("sha512_half"), params, result, 0, data.size(), 256, uint256::size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == uint256::size()); @@ -2615,14 +2522,14 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::account(masterID); WasmValVec params(4), result(1); - auto* trap = ww(&imp.at("account_keylet"), params, result, masterID, 1024, 32); + auto* trap = ww(&imp.at("accountroot_id"), params, result, masterID, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 2); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = ww(&imp.at("account_keylet"), params, result, xrpAccount(), 1024, 32); + auto* trap2 = ww(&imp.at("accountroot_id"), params, result, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2632,20 +2539,19 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto const expected = keylet::amm(xrpIssue(), usdIssue); WasmValVec params(6), result(1); - auto* trap = ww(&imp.at("amm_keylet"), params, result, xrpIssue(), usdIssue, 1024, 32); + auto* trap = ww(&imp.at("amm_id"), params, result, xrpIssue(), usdIssue, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = - ww(&imp.at("amm_keylet"), params, result, xrpIssue(), xrpIssue(), 1024, 32); + auto* trap2 = ww(&imp.at("amm_id"), params, result, xrpIssue(), xrpIssue(), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); - auto* trap3 = ww(&imp.at("amm_keylet"), params, result, baseMpt, xrpIssue(), 1024, 32); + auto* trap3 = ww(&imp.at("amm_id"), params, result, baseMpt, xrpIssue(), 1024, 32); BEAST_EXPECT( !trap3 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); @@ -2654,8 +2560,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::check(masterID, 1u); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("check_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + auto* trap = ww(&imp.at("check_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -2663,7 +2568,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("check_keylet"), params, result, xrpAccount(), toBytes(1u), 1024, 32); + ww(&imp.at("check_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2675,15 +2580,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::credential(masterID, masterID, credType); WasmValVec params(8), result(1); - auto* trap = - ww(&imp.at("credential_keylet"), - params, - result, - masterID, - masterID, - credType, - 1024, - 32); + auto* trap = ww( + &imp.at("credential_id"), params, result, masterID, masterID, credType, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 6); @@ -2696,7 +2594,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite Slice const longCredType(longCredTypeStr.data(), longCredTypeStr.size()); static_assert(longCredTypeStr.size() > kMaxCredentialTypeLength); auto* trap2 = - ww(&imp.at("credential_keylet"), + ww(&imp.at("credential_id"), params, result, masterID, @@ -2709,7 +2607,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); auto* trap3 = - ww(&imp.at("credential_keylet"), + ww(&imp.at("credential_id"), params, result, xrpAccount(), @@ -2722,7 +2620,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); auto* trap4 = - ww(&imp.at("credential_keylet"), + ww(&imp.at("credential_id"), params, result, masterID, @@ -2738,14 +2636,14 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::did(masterID); WasmValVec params(4), result(1); - auto* trap = ww(&imp.at("did_keylet"), params, result, masterID, 1024, 32); + auto* trap = ww(&imp.at("did_id"), params, result, masterID, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 2); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = ww(&imp.at("did_keylet"), params, result, xrpAccount(), 1024, 32); + auto* trap2 = ww(&imp.at("did_id"), params, result, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2754,28 +2652,26 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::delegate(masterID, alice.id()); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("delegate_keylet"), params, result, masterID, alice.id(), 1024, 32); + auto* trap = ww(&imp.at("delegate_id"), params, result, masterID, alice.id(), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = - ww(&imp.at("delegate_keylet"), params, result, masterID, masterID, 1024, 32); + auto* trap2 = ww(&imp.at("delegate_id"), params, result, masterID, masterID, 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); auto* trap3 = - ww(&imp.at("delegate_keylet"), params, result, masterID, xrpAccount(), 1024, 32); + ww(&imp.at("delegate_id"), params, result, masterID, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap3 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); auto* trap4 = - ww(&imp.at("delegate_keylet"), params, result, xrpAccount(), masterID, 1024, 32); + ww(&imp.at("delegate_id"), params, result, xrpAccount(), masterID, 1024, 32); BEAST_EXPECT( !trap4 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2784,8 +2680,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::depositPreauth(masterID, alice.id()); WasmValVec params(6), result(1); - auto* trap = ww( - &imp.at("deposit_preauth_keylet"), params, result, masterID, alice.id(), 1024, 32); + auto* trap = + ww(&imp.at("deposit_preauth_id"), params, result, masterID, alice.id(), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -2793,31 +2689,19 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("deposit_preauth_keylet"), params, result, masterID, masterID, 1024, 32); + ww(&imp.at("deposit_preauth_id"), params, result, masterID, masterID, 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); auto* trap3 = - ww(&imp.at("deposit_preauth_keylet"), - params, - result, - masterID, - xrpAccount(), - 1024, - 32); + ww(&imp.at("deposit_preauth_id"), params, result, masterID, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap3 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); auto* trap4 = - ww(&imp.at("deposit_preauth_keylet"), - params, - result, - xrpAccount(), - masterID, - 1024, - 32); + ww(&imp.at("deposit_preauth_id"), params, result, xrpAccount(), masterID, 1024, 32); BEAST_EXPECT( !trap4 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2826,8 +2710,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::escrow(masterID, 1u); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("escrow_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + auto* trap = ww(&imp.at("escrow_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -2835,7 +2718,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("escrow_keylet"), params, result, xrpAccount(), toBytes(1u), 1024, 32); + ww(&imp.at("escrow_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2846,7 +2729,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto const expected = keylet::line(masterID, alice.id(), usd); WasmValVec params(8), result(1); auto* trap = - ww(&imp.at("line_keylet"), params, result, masterID, alice.id(), usd, 1024, 32); + ww(&imp.at("trustline_id"), params, result, masterID, alice.id(), usd, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 6); @@ -2854,25 +2737,25 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("line_keylet"), params, result, masterID, masterID, usd, 1024, 32); + ww(&imp.at("trustline_id"), params, result, masterID, masterID, usd, 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); auto* trap3 = - ww(&imp.at("line_keylet"), params, result, masterID, xrpAccount(), usd, 1024, 32); + ww(&imp.at("trustline_id"), params, result, masterID, xrpAccount(), usd, 1024, 32); BEAST_EXPECT( !trap3 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); auto* trap4 = - ww(&imp.at("line_keylet"), params, result, xrpAccount(), masterID, usd, 1024, 32); + ww(&imp.at("trustline_id"), params, result, xrpAccount(), masterID, usd, 1024, 32); BEAST_EXPECT( !trap4 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); auto* trap5 = - ww(&imp.at("line_keylet"), + ww(&imp.at("trustline_id"), params, result, masterID, @@ -2889,7 +2772,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto const expected = keylet::mptIssuance(1u, masterID); WasmValVec params(6), result(1); auto* trap = - ww(&imp.at("mpt_issuance_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + ww(&imp.at("mpt_issuance_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -2897,13 +2780,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("mpt_issuance_keylet"), - params, - result, - xrpAccount(), - toBytes(1u), - 1024, - 32); + ww(&imp.at("mpt_issuance_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2912,22 +2789,20 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::mptoken(baseMpt, alice.id()); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("mptoken_keylet"), params, result, baseMpt, alice.id(), 1024, 32); + auto* trap = ww(&imp.at("mptoken_id"), params, result, baseMpt, alice.id(), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = - ww(&imp.at("mptoken_keylet"), params, result, MPTID{}, alice.id(), 1024, 32); + auto* trap2 = ww(&imp.at("mptoken_id"), params, result, MPTID{}, alice.id(), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); auto* trap3 = - ww(&imp.at("mptoken_keylet"), params, result, baseMpt, xrpAccount(), 1024, 32); + ww(&imp.at("mptoken_id"), params, result, baseMpt, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap3 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2937,15 +2812,15 @@ struct HostFuncImpl_test : public beast::unit_test::Suite auto const expected = keylet::nftoffer(masterID, 1u); WasmValVec params(6), result(1); auto* trap = - ww(&imp.at("nft_offer_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + ww(&imp.at("nft_offer_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = ww( - &imp.at("nft_offer_keylet"), params, result, xrpAccount(), toBytes(1u), 1024, 32); + auto* trap2 = + ww(&imp.at("nft_offer_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2954,8 +2829,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::offer(masterID, 1u); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("offer_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + auto* trap = ww(&imp.at("offer_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -2963,7 +2837,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("offer_keylet"), params, result, xrpAccount(), toBytes(1u), 1024, 32); + ww(&imp.at("offer_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2972,8 +2846,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::oracle(masterID, 1u); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("oracle_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + auto* trap = ww(&imp.at("oracle_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -2981,7 +2854,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("oracle_keylet"), params, result, xrpAccount(), toBytes(1u), 1024, 32); + ww(&imp.at("oracle_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -2990,36 +2863,22 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::payChan(masterID, alice.id(), 1u); WasmValVec params(8), result(1); - auto* trap = - ww(&imp.at("paychan_keylet"), - params, - result, - masterID, - alice.id(), - toBytes(1u), - 1024, - 32); + auto* trap = ww( + &imp.at("paychan_id"), params, result, masterID, alice.id(), toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 6); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = - ww(&imp.at("paychan_keylet"), - params, - result, - masterID, - masterID, - toBytes(1u), - 1024, - 32); + auto* trap2 = ww( + &imp.at("paychan_id"), params, result, masterID, masterID, toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidParams)); auto* trap3 = - ww(&imp.at("paychan_keylet"), + ww(&imp.at("paychan_id"), params, result, masterID, @@ -3032,7 +2891,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); auto* trap4 = - ww(&imp.at("paychan_keylet"), + ww(&imp.at("paychan_id"), params, result, xrpAccount(), @@ -3048,14 +2907,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::permissionedDomain(masterID, 1u); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("permissioned_domain_keylet"), - params, - result, - masterID, - toBytes(1u), - 1024, - 32); + auto* trap = ww( + &imp.at("permissioned_domain_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -3063,7 +2916,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("permissioned_domain_keylet"), + ww(&imp.at("permissioned_domain_id"), params, result, xrpAccount(), @@ -3078,14 +2931,14 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::signers(masterID); WasmValVec params(4), result(1); - auto* trap = ww(&imp.at("signers_keylet"), params, result, masterID, 1024, 32); + auto* trap = ww(&imp.at("signers_id"), params, result, masterID, 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 2); BEAST_EXPECT(compareKeylet(actual, expected)); } - auto* trap2 = ww(&imp.at("signers_keylet"), params, result, xrpAccount(), 1024, 32); + auto* trap2 = ww(&imp.at("signers_id"), params, result, xrpAccount(), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -3094,8 +2947,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::kTicket(masterID, 1u); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("ticket_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + auto* trap = ww(&imp.at("ticket_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -3103,7 +2955,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("ticket_keylet"), params, result, xrpAccount(), toBytes(1u), 1024, 32); + ww(&imp.at("ticket_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -3112,8 +2964,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { auto const expected = keylet::vault(masterID, 1u); WasmValVec params(6), result(1); - auto* trap = - ww(&imp.at("vault_keylet"), params, result, masterID, toBytes(1u), 1024, 32); + auto* trap = ww(&imp.at("vault_id"), params, result, masterID, toBytes(1u), 1024, 32); if (BEAST_EXPECT(!trap && result[0].kind == WASM_I32 && result[0].of.i32 == 32)) { auto const actual = vrt.getBytes(params, 4); @@ -3121,7 +2972,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite } auto* trap2 = - ww(&imp.at("vault_keylet"), params, result, xrpAccount(), toBytes(1u), 1024, 32); + ww(&imp.at("vault_id"), params, result, xrpAccount(), toBytes(1u), 1024, 32); BEAST_EXPECT( !trap2 && result[0].kind == WASM_I32 && result[0].of.i32 == static_cast(HostFunctionError::InvalidAccount)); @@ -3165,7 +3016,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, nftId.data(), uint256::size()); WasmValVec params(6), result(1); auto* trap = - ww(&import.at("get_nft"), + ww(&import.at("nft_uri"), params, result, 0, @@ -3191,7 +3042,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, nftId.data(), uint256::size()); WasmValVec params(6), result(1); auto* trap = - ww(&import.at("get_nft"), + ww(&import.at("nft_uri"), params, result, 0, @@ -3213,7 +3064,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, zeroId.data(), uint256::size()); WasmValVec params(6), result(1); auto* trap = - ww(&import.at("get_nft"), + ww(&import.at("nft_uri"), params, result, 0, @@ -3235,7 +3086,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, badId.data(), uint256::size()); WasmValVec params(6), result(1); auto* trap = - ww(&import.at("get_nft"), + ww(&import.at("nft_uri"), params, result, 0, @@ -3256,7 +3107,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, nftId2.data(), uint256::size()); WasmValVec params(6), result(1); auto* trap = - ww(&import.at("get_nft"), + ww(&import.at("nft_uri"), params, result, 0, @@ -3300,7 +3151,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, nftId.data(), uint256::size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_nft_issuer"), + ww(&import.at("nft_issuer"), params, result, 0, @@ -3323,7 +3174,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, zeroId.data(), uint256::size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_nft_issuer"), + ww(&import.at("nft_issuer"), params, result, 0, @@ -3362,8 +3213,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getNFTTaxon(nftId); vrt.setBytes(0, nftId.data(), uint256::size()); WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("get_nft_taxon"), params, result, 0, uint256::size(), 256, sizeof(uint32_t)); + auto* trap = + ww(&import.at("nft_taxon"), params, result, 0, uint256::size(), 256, sizeof(uint32_t)); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == sizeof(uint32_t))) @@ -3399,7 +3250,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getNFTFlags(nftId); vrt.setBytes(0, nftId.data(), uint256::size()); WasmValVec params(2), result(1); - auto* trap = ww(&import.at("get_nft_flags"), params, result, 0, uint256::size()); + auto* trap = ww(&import.at("nft_flags"), params, result, 0, uint256::size()); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32)) BEAST_EXPECT(result[0].of.i32 == tfTransferable); @@ -3411,7 +3262,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite uint256 zeroId; vrt.setBytes(0, zeroId.data(), uint256::size()); WasmValVec params(2), result(1); - auto* trap = ww(&import.at("get_nft_flags"), params, result, 0, uint256::size()); + auto* trap = ww(&import.at("nft_flags"), params, result, 0, uint256::size()); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32)) BEAST_EXPECT(result[0].of.i32 == 0); @@ -3445,7 +3296,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getNFTTransferFee(nftId); vrt.setBytes(0, nftId.data(), uint256::size()); WasmValVec params(2), result(1); - auto* trap = ww(&import.at("get_nft_transfer_fee"), params, result, 0, uint256::size()); + auto* trap = ww(&import.at("nft_xfer_fee"), params, result, 0, uint256::size()); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32)) BEAST_EXPECT(result[0].of.i32 == transferFee); @@ -3457,7 +3308,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite uint256 zeroId; vrt.setBytes(0, zeroId.data(), uint256::size()); WasmValVec params(2), result(1); - auto* trap = ww(&import.at("get_nft_transfer_fee"), params, result, 0, uint256::size()); + auto* trap = ww(&import.at("nft_xfer_fee"), params, result, 0, uint256::size()); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32)) BEAST_EXPECT(result[0].of.i32 == 0); @@ -3493,7 +3344,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, nftId.data(), uint256::size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_nft_serial"), + ww(&import.at("nft_serial"), params, result, 0, @@ -3515,7 +3366,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, zeroId.data(), uint256::size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("get_nft_serial"), + ww(&import.at("nft_serial"), params, result, 0, @@ -3719,8 +3570,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, reinterpret_cast(msg.data()), msg.size()); vrt.setBytes(256, accountId.data(), accountId.size()); WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("trace_account"), params, result, 0, msg.size(), 256, accountId.size()); + auto* trap = + ww(&import.at("trace_acct"), params, result, 0, msg.size(), 256, accountId.size()); if (BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 0)) @@ -3753,8 +3604,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, reinterpret_cast(msg.data()), msg.size()); vrt.setBytes(256, accountId.data(), accountId.size()); WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("trace_account"), params, result, 0, msg.size(), 256, accountId.size()); + auto* trap = + ww(&import.at("trace_acct"), params, result, 0, msg.size(), 256, accountId.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 0); @@ -3792,7 +3643,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, amountBytes.data(), amountBytes.size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("trace_amount"), + ww(&import.at("trace_amt"), params, result, 0, @@ -3821,7 +3672,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, amountBytes.data(), amountBytes.size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("trace_amount"), + ww(&import.at("trace_amt"), params, result, 0, @@ -3845,7 +3696,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, amountBytes.data(), amountBytes.size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("trace_amount"), + ww(&import.at("trace_amt"), params, result, 0, @@ -3881,8 +3732,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, reinterpret_cast(msg.data()), msg.size()); vrt.setBytes(256, amountBytes.data(), amountBytes.size()); WasmValVec params(4), result(1); - auto* trap = ww( - &import.at("trace_amount"), params, result, 0, msg.size(), 256, amountBytes.size()); + auto* trap = + ww(&import.at("trace_amt"), params, result, 0, msg.size(), 256, amountBytes.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 0); @@ -4002,14 +3853,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, reinterpret_cast(msg.data()), msg.size()); vrt.setBytes(256, reinterpret_cast(invalid.data()), invalid.size()); WasmValVec params(4), result(1); - auto* trap = - ww(&import.at("trace_opaque_float"), - params, - result, - 0, - msg.size(), - 256, - invalid.size()); + auto* trap = ww( + &import.at("trace_xfloat"), params, result, 0, msg.size(), 256, invalid.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 0); @@ -4021,7 +3866,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, floatMaxExp.data(), floatMaxExp.size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("trace_opaque_float"), + ww(&import.at("trace_xfloat"), params, result, 0, @@ -4056,13 +3901,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(256, reinterpret_cast(invalid.data()), invalid.size()); WasmValVec params(4), result(1); auto* trap = - ww(&import.at("trace_opaque_float"), - params, - result, - 0, - msg.size(), - 256, - invalid.size()); + ww(&import.at("trace_xfloat"), params, result, 0, msg.size(), 256, invalid.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 0); @@ -4437,7 +4276,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.floatCompare(Slice(), Slice()); WasmValVec params(4), result(1); - auto* trap = ww(&import.at("float_compare"), params, result, 0, 0, 0, 0); + auto* trap = ww(&import.at("float_cmp"), params, result, 0, 0, 0, 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4449,7 +4288,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.floatCompare(makeSlice(floatInvalidZero), Slice()); WasmValVec params(4), result(1); vrt.setBytes(0, floatInvalidZero.data(), floatInvalidZero.size()); - auto* trap = ww(&import.at("float_compare"), params, result, 0, floatSize, 0, 0); + auto* trap = ww(&import.at("float_cmp"), params, result, 0, floatSize, 0, 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4462,14 +4301,8 @@ struct HostFuncImpl_test : public beast::unit_test::Suite WasmValVec params(4), result(1); vrt.setBytes(0, float1.data(), float1.size()); vrt.setBytes(floatSize, invalid.data(), invalid.size()); - auto* trap = - ww(&import.at("float_compare"), - params, - result, - 0, - floatSize, - floatSize, - invalid.size()); + auto* trap = ww( + &import.at("float_cmp"), params, result, 0, floatSize, floatSize, invalid.size()); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4483,7 +4316,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatIntMin.data(), floatIntMin.size()); vrt.setBytes(floatSize, floatIntZero.data(), floatIntZero.size()); auto* trap = - ww(&import.at("float_compare"), params, result, 0, floatSize, floatSize, floatSize); + ww(&import.at("float_cmp"), params, result, 0, floatSize, floatSize, floatSize); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 2); @@ -4495,7 +4328,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatIntMax.data(), floatIntMax.size()); vrt.setBytes(floatSize, floatIntZero.data(), floatIntZero.size()); auto* trap = - ww(&import.at("float_compare"), params, result, 0, floatSize, floatSize, floatSize); + ww(&import.at("float_cmp"), params, result, 0, floatSize, floatSize, floatSize); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 1); @@ -4507,7 +4340,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, float1.data(), float1.size()); vrt.setBytes(floatSize, float1.data(), float1.size()); auto* trap = - ww(&import.at("float_compare"), params, result, 0, floatSize, floatSize, floatSize); + ww(&import.at("float_cmp"), params, result, 0, floatSize, floatSize, floatSize); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == 0); @@ -4666,8 +4499,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.floatSubtract(Slice(), Slice(), -1); WasmValVec params(7), result(1); - auto* trap = - ww(&import.at("float_subtract"), params, result, 0, 0, 0, 0, 0, floatSize, -1); + auto* trap = ww(&import.at("float_sub"), params, result, 0, 0, 0, 0, 0, floatSize, -1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4678,8 +4510,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.floatSubtract(Slice(), Slice(), 0); WasmValVec params(7), result(1); - auto* trap = - ww(&import.at("float_subtract"), params, result, 0, 0, 0, 0, 0, floatSize, 0); + auto* trap = ww(&import.at("float_sub"), params, result, 0, 0, 0, 0, 0, floatSize, 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4693,7 +4524,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, float1.data(), float1.size()); vrt.setBytes(floatSize, invalid.data(), invalid.size()); auto* trap = - ww(&import.at("float_subtract"), + ww(&import.at("float_sub"), params, result, 0, @@ -4716,7 +4547,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatMinusMaxExp.data(), floatMinusMaxExp.size()); vrt.setBytes(floatSize, floatMaxIOU.data(), floatMaxIOU.size()); auto* trap = - ww(&import.at("float_subtract"), + ww(&import.at("float_sub"), params, result, 0, @@ -4739,7 +4570,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatIntMin.data(), floatIntMin.size()); vrt.setBytes(floatSize, floatIntZero.data(), floatIntZero.size()); auto* trap = - ww(&import.at("float_subtract"), + ww(&import.at("float_sub"), params, result, 0, @@ -4762,7 +4593,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatIntZero.data(), floatIntZero.size()); vrt.setBytes(floatSize, float1.data(), float1.size()); auto* trap = - ww(&import.at("float_subtract"), + ww(&import.at("float_sub"), params, result, 0, @@ -4799,8 +4630,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.floatMultiply(Slice(), Slice(), -1); WasmValVec params(7), result(1); - auto* trap = - ww(&import.at("float_multiply"), params, result, 0, 0, 0, 0, 0, floatSize, -1); + auto* trap = ww(&import.at("float_mult"), params, result, 0, 0, 0, 0, 0, floatSize, -1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4811,8 +4641,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.floatMultiply(Slice(), Slice(), 0); WasmValVec params(7), result(1); - auto* trap = - ww(&import.at("float_multiply"), params, result, 0, 0, 0, 0, 0, floatSize, 0); + auto* trap = ww(&import.at("float_mult"), params, result, 0, 0, 0, 0, 0, floatSize, 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4826,7 +4655,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, float1.data(), float1.size()); vrt.setBytes(floatSize, invalid.data(), invalid.size()); auto* trap = - ww(&import.at("float_multiply"), + ww(&import.at("float_mult"), params, result, 0, @@ -4849,7 +4678,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatMax.data(), floatMax.size()); vrt.setBytes(floatSize, float1More.data(), float1More.size()); auto* trap = - ww(&import.at("float_multiply"), + ww(&import.at("float_mult"), params, result, 0, @@ -4872,7 +4701,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, float1.data(), float1.size()); vrt.setBytes(floatSize, float1.data(), float1.size()); auto* trap = - ww(&import.at("float_multiply"), + ww(&import.at("float_mult"), params, result, 0, @@ -4895,7 +4724,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatIntZero.data(), floatIntZero.size()); vrt.setBytes(floatSize, floatMaxIOU.data(), floatMaxIOU.size()); auto* trap = - ww(&import.at("float_multiply"), + ww(&import.at("float_mult"), params, result, 0, @@ -4918,7 +4747,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, float10.data(), float10.size()); vrt.setBytes(floatSize, floatPreMaxExp.data(), floatPreMaxExp.size()); auto* trap = - ww(&import.at("float_multiply"), + ww(&import.at("float_mult"), params, result, 0, @@ -4955,8 +4784,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.floatDivide(Slice(), Slice(), -1); WasmValVec params(7), result(1); - auto* trap = - ww(&import.at("float_divide"), params, result, 0, 0, 0, 0, 0, floatSize, -1); + auto* trap = ww(&import.at("float_div"), params, result, 0, 0, 0, 0, 0, floatSize, -1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4967,8 +4795,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite { // hfs.floatDivide(Slice(), Slice(), 0); WasmValVec params(7), result(1); - auto* trap = - ww(&import.at("float_divide"), params, result, 0, 0, 0, 0, 0, floatSize, 0); + auto* trap = ww(&import.at("float_div"), params, result, 0, 0, 0, 0, 0, floatSize, 0); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT( @@ -4981,7 +4808,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, float1.data(), float1.size()); vrt.setBytes(floatSize, invalid.data(), invalid.size()); auto* trap = - ww(&import.at("float_divide"), + ww(&import.at("float_div"), params, result, 0, @@ -5003,7 +4830,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, float1.data(), float1.size()); vrt.setBytes(floatSize, floatIntZero.data(), floatIntZero.size()); auto* trap = - ww(&import.at("float_divide"), + ww(&import.at("float_div"), params, result, 0, @@ -5029,7 +4856,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatMax.data(), floatMax.size()); vrt.setBytes(floatSize, y->data(), y->size()); auto* trap = - ww(&import.at("float_divide"), + ww(&import.at("float_div"), params, result, 0, @@ -5052,7 +4879,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatIntZero.data(), floatIntZero.size()); vrt.setBytes(floatSize, float1.data(), float1.size()); auto* trap = - ww(&import.at("float_divide"), + ww(&import.at("float_div"), params, result, 0, @@ -5074,7 +4901,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite vrt.setBytes(0, floatMaxExp.data(), floatMaxExp.size()); vrt.setBytes(floatSize, float10.data(), float10.size()); auto* trap = - ww(&import.at("float_divide"), + ww(&import.at("float_div"), params, result, 0, @@ -6206,8 +6033,7 @@ struct HostFuncImpl_test : public beast::unit_test::Suite // hfs.getLedgerSqn(); WasmValVec params(2), result(1); // 3 parameters instead of 2 - auto* trap = - ww(&import.at("get_ledger_sqn"), params, result, 0, sizeof(std::uint32_t), 1); + auto* trap = ww(&import.at("ldgr_index"), params, result, 0, sizeof(std::uint32_t), 1); BEAST_EXPECT(!trap) && BEAST_EXPECT(result[0].kind == WASM_I32) && BEAST_EXPECT(result[0].of.i32 == sizeof(std::uint32_t)) && diff --git a/src/test/app/Wasm_test.cpp b/src/test/app/Wasm_test.cpp index 737e5f0c9e..bae464f7be 100644 --- a/src/test/app/Wasm_test.cpp +++ b/src/test/app/Wasm_test.cpp @@ -179,7 +179,7 @@ struct Wasm_test : public beast::unit_test::Suite Env env{*this}; TestLedgerDataProvider hfs(env); ImportVec imports; - WASM_IMPORT_FUNC2(imports, getLedgerSqn, "get_ledger_sqn", hfs, 33); + WASM_IMPORT_FUNC2(imports, getLedgerSqn, "ldgr_index", hfs, 33); auto& engine = WasmEngine::instance(); auto re = @@ -217,7 +217,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, 27'032); env.close(); } @@ -239,7 +239,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, 68'792); env.close(); } @@ -278,7 +278,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, 68'792); } { @@ -302,7 +302,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, 68'792); } { // fail because trying to access nonexistent field @@ -320,7 +320,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'965); } { // fail because trying to allocate more than MAX_PAGES memory @@ -338,7 +338,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'965); } } @@ -354,7 +354,7 @@ struct Wasm_test : public beast::unit_test::Suite auto const codecovWasm = hexToBytes(kCodecovTestsWasmHex); TestHostFunctions hfs(env); - auto const allowance = 220'169; + auto const allowance = 204'624; auto re = runEscrowWasm(codecovWasm, hfs, allowance, escrowFunctionName, {}); checkResult(re, 1, allowance); diff --git a/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock b/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock index dc4aa73edb..48771d1506 100644 --- a/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock +++ b/src/test/app/wasm_fixtures/all_host_functions/Cargo.lock @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -74,24 +74,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -135,15 +135,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "version_check" @@ -152,9 +152,9 @@ 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#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ "bs58", "quote", @@ -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#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml b/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml index 102eb32cc0..fb0c44562a 100644 --- a/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml +++ b/src/test/app/wasm_fixtures/all_host_functions/Cargo.toml @@ -10,7 +10,7 @@ edition = "2024" crate-type = ["cdylib"] [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/all_host_functions/src/lib.rs b/src/test/app/wasm_fixtures/all_host_functions/src/lib.rs index a0bf4c0dcf..cdbe05d3f0 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 @@ -98,7 +98,7 @@ fn test_ledger_header_functions() -> i32 { // Test 1.1: get_ledger_sqn() - should return current ledger sequence number let mut sqn_buffer = [0u8; 4]; - let sqn_result = unsafe { host::get_ledger_sqn(sqn_buffer.as_mut_ptr(), sqn_buffer.len()) }; + let sqn_result = unsafe { host::ldgr_index(sqn_buffer.as_mut_ptr(), sqn_buffer.len()) }; if sqn_result <= 0 { let _ = trace_num("ERROR: get_ledger_sqn failed:", sqn_result as i64); @@ -110,7 +110,7 @@ fn test_ledger_header_functions() -> i32 { // Test 1.2: get_parent_ledger_time() - should return parent ledger timestamp let mut time_buffer = [0u8; 4]; let time_result = - unsafe { host::get_parent_ledger_time(time_buffer.as_mut_ptr(), time_buffer.len()) }; + unsafe { host::parent_ldgr_time(time_buffer.as_mut_ptr(), time_buffer.len()) }; if time_result <= 0 { let _ = trace_num("ERROR: get_parent_ledger_time failed:", time_result as i64); @@ -122,7 +122,7 @@ fn test_ledger_header_functions() -> i32 { // Test 1.3: get_parent_ledger_hash() - should return parent ledger hash (32 bytes) let mut hash_buffer = [0u8; 32]; let hash_result = - unsafe { host::get_parent_ledger_hash(hash_buffer.as_mut_ptr(), hash_buffer.len()) }; + unsafe { host::parent_ldgr_hash(hash_buffer.as_mut_ptr(), hash_buffer.len()) }; if hash_result != 32 { let _ = trace_num( @@ -146,8 +146,8 @@ fn test_transaction_data_functions() -> i32 { // Test with Account field (required, 20 bytes) let mut account_buffer = [0u8; 20]; let account_len = unsafe { - host::get_tx_field( - sfield::Account, + host::tx_field( + sfield::Account.into(), account_buffer.as_mut_ptr(), account_buffer.len(), ) @@ -165,8 +165,13 @@ fn test_transaction_data_functions() -> i32 { // Test with Fee field (XRP amount - 8 bytes in new serialized format) // New format: XRP amounts are always 8 bytes (positive: value | cPositive flag, negative: just value) let mut fee_buffer = [0u8; 8]; - let fee_len = - unsafe { host::get_tx_field(sfield::Fee, fee_buffer.as_mut_ptr(), fee_buffer.len()) }; + let fee_len = unsafe { + host::tx_field( + sfield::Fee.into(), + fee_buffer.as_mut_ptr(), + fee_buffer.len(), + ) + }; if fee_len != 8 { let _ = trace_num( @@ -184,8 +189,13 @@ fn test_transaction_data_functions() -> i32 { // Test with Sequence field (required, 4 bytes uint32) let mut seq_buffer = [0u8; 4]; - let seq_len = - unsafe { host::get_tx_field(sfield::Sequence, seq_buffer.as_mut_ptr(), seq_buffer.len()) }; + let seq_len = unsafe { + host::tx_field( + sfield::Sequence.into(), + seq_buffer.as_mut_ptr(), + seq_buffer.len(), + ) + }; if seq_len != 4 { let _ = trace_num( @@ -203,7 +213,7 @@ fn test_transaction_data_functions() -> i32 { 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] let mut nested_buffer = [0u8; 32]; let nested_result = unsafe { - host::get_tx_nested_field( + host::tx_inner( locator.as_ptr(), locator.len(), nested_buffer.as_mut_ptr(), @@ -227,15 +237,14 @@ fn test_transaction_data_functions() -> i32 { } // Test 2.3: get_tx_array_len() - Get array length - let signers_len = unsafe { host::get_tx_array_len(sfield::Signers) }; + let signers_len = unsafe { host::tx_arr_len(sfield::Signers.into()) }; let _ = trace_num("Signers array length:", signers_len as i64); - let memos_len = unsafe { host::get_tx_array_len(sfield::Memos) }; + let memos_len = unsafe { host::tx_arr_len(sfield::Memos.into()) }; let _ = trace_num("Memos array length:", memos_len as i64); // Test 2.4: get_tx_nested_array_len() - Get nested array length with locator - let nested_array_len = - unsafe { host::get_tx_nested_array_len(locator.as_ptr(), locator.len()) }; + let nested_array_len = unsafe { host::tx_inner_arr_len(locator.as_ptr(), locator.len()) }; if nested_array_len < 0 { let _ = trace_num( @@ -259,8 +268,8 @@ fn test_current_ledger_object_functions() -> i32 { // Test with Balance field (XRP amount - 8 bytes in new serialized format) let mut balance_buffer = [0u8; 8]; let balance_result = unsafe { - host::get_current_ledger_obj_field( - sfield::Balance, + host::home_le_field( + sfield::Balance.into(), balance_buffer.as_mut_ptr(), balance_buffer.len(), ) @@ -297,8 +306,8 @@ fn test_current_ledger_object_functions() -> i32 { // Test with Account field let mut current_account_buffer = [0u8; 20]; let current_account_result = unsafe { - host::get_current_ledger_obj_field( - sfield::Account, + host::home_le_field( + sfield::Account.into(), current_account_buffer.as_mut_ptr(), current_account_buffer.len(), ) @@ -317,7 +326,7 @@ fn test_current_ledger_object_functions() -> i32 { 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] let mut current_nested_buffer = [0u8; 32]; let current_nested_result = unsafe { - host::get_current_ledger_obj_nested_field( + host::home_le_inner( locator.as_ptr(), locator.len(), current_nested_buffer.as_mut_ptr(), @@ -340,7 +349,7 @@ fn test_current_ledger_object_functions() -> i32 { } // Test 3.3: get_current_ledger_obj_array_len() - Array length in current object - let current_array_len = unsafe { host::get_current_ledger_obj_array_len(sfield::Signers) }; + let current_array_len = unsafe { host::home_le_arr_len(sfield::Signers.into()) }; let _ = trace_num( "Current object Signers array length:", current_array_len as i64, @@ -348,7 +357,7 @@ fn test_current_ledger_object_functions() -> i32 { // Test 3.4: get_current_ledger_obj_nested_array_len() - Nested array length let current_nested_array_len = - unsafe { host::get_current_ledger_obj_nested_array_len(locator.as_ptr(), locator.len()) }; + unsafe { host::home_le_inner_arr_len(locator.as_ptr(), locator.len()) }; if current_nested_array_len < 0 { let _ = trace_num( @@ -379,7 +388,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test 4.1: cache_ledger_obj() - Cache a ledger object let mut keylet_buffer = [0u8; 32]; let keylet_result = unsafe { - host::account_keylet( + host::accountroot_id( account_id.0.as_ptr(), account_id.0.len(), keylet_buffer.as_mut_ptr(), @@ -389,14 +398,13 @@ fn test_any_ledger_object_functions() -> i32 { if keylet_result != 32 { let _ = trace_num( - "ERROR: account_keylet failed for caching test:", + "ERROR: accountroot_id failed for caching test:", keylet_result as i64, ); return -401; // Keylet generation failed for caching test } - let cache_result = - unsafe { host::cache_ledger_obj(keylet_buffer.as_ptr(), keylet_result as usize, 0) }; + let cache_result = unsafe { host::cache_le(keylet_buffer.as_ptr(), keylet_result as usize, 0) }; if cache_result <= 0 { let _ = trace_num( @@ -411,9 +419,9 @@ fn test_any_ledger_object_functions() -> i32 { // Test get_ledger_obj_field with invalid slot let field_result = unsafe { - host::get_ledger_obj_field( + host::le_field( 1, - sfield::Balance, + sfield::Balance.into(), test_buffer.as_mut_ptr(), test_buffer.len(), ) @@ -428,7 +436,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test get_ledger_obj_nested_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] let nested_result = unsafe { - host::get_ledger_obj_nested_field( + host::le_inner( 1, locator.as_ptr(), locator.len(), @@ -444,7 +452,7 @@ fn test_any_ledger_object_functions() -> i32 { } // Test get_ledger_obj_array_len with invalid slot - let array_result = unsafe { host::get_ledger_obj_array_len(1, sfield::Signers) }; + 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:", @@ -454,7 +462,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test get_ledger_obj_nested_array_len with invalid slot let nested_array_result = - unsafe { host::get_ledger_obj_nested_array_len(1, locator.as_ptr(), locator.len()) }; + unsafe { host::le_inner_arr_len(1, locator.as_ptr(), locator.len()) }; if nested_array_result < 0 { let _ = trace_num( "INFO: get_ledger_obj_nested_array_len failed as expected:", @@ -473,9 +481,9 @@ fn test_any_ledger_object_functions() -> i32 { // Test 4.2: get_ledger_obj_field() - Access field from cached object let mut cached_balance_buffer = [0u8; 8]; let cached_balance_result = unsafe { - host::get_ledger_obj_field( + host::le_field( slot, - sfield::Balance, + sfield::Balance.into(), cached_balance_buffer.as_mut_ptr(), cached_balance_buffer.len(), ) @@ -512,7 +520,7 @@ fn test_any_ledger_object_functions() -> i32 { 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] let mut cached_nested_buffer = [0u8; 32]; let cached_nested_result = unsafe { - host::get_ledger_obj_nested_field( + host::le_inner( slot, locator.as_ptr(), locator.len(), @@ -536,7 +544,7 @@ fn test_any_ledger_object_functions() -> i32 { } // Test 4.4: get_ledger_obj_array_len() - Array length from cached object - let cached_array_len = unsafe { host::get_ledger_obj_array_len(slot, sfield::Signers) }; + let cached_array_len = unsafe { host::le_arr_len(slot, sfield::Signers.into()) }; let _ = trace_num( "Cached object Signers array length:", cached_array_len as i64, @@ -544,7 +552,7 @@ fn test_any_ledger_object_functions() -> i32 { // Test 4.5: get_ledger_obj_nested_array_len() - Nested array length from cached object let cached_nested_array_len = - unsafe { host::get_ledger_obj_nested_array_len(slot, locator.as_ptr(), locator.len()) }; + unsafe { host::le_inner_arr_len(slot, locator.as_ptr(), locator.len()) }; if cached_nested_array_len < 0 { let _ = trace_num( @@ -570,30 +578,30 @@ fn test_keylet_generation_functions() -> i32 { let escrow_finish = EscrowFinish; let account_id = escrow_finish.get_account().unwrap(); - // Test 5.1: account_keylet() - Generate keylet for account - let mut account_keylet_buffer = [0u8; 32]; - let account_keylet_result = unsafe { - host::account_keylet( + // Test 5.1: accountroot_id() - Generate keylet for account + let mut accountroot_id_buffer = [0u8; 32]; + let accountroot_id_result = unsafe { + host::accountroot_id( account_id.0.as_ptr(), account_id.0.len(), - account_keylet_buffer.as_mut_ptr(), - account_keylet_buffer.len(), + accountroot_id_buffer.as_mut_ptr(), + accountroot_id_buffer.len(), ) }; - if account_keylet_result != 32 { + if accountroot_id_result != 32 { let _ = trace_num( - "ERROR: account_keylet failed:", - account_keylet_result as i64, + "ERROR: accountroot_id failed:", + accountroot_id_result as i64, ); return -501; // Account keylet generation failed } - let _ = trace_data("Account keylet:", &account_keylet_buffer, DataRepr::AsHex); + let _ = trace_data("Account keylet:", &accountroot_id_buffer, DataRepr::AsHex); // Test 5.2: credential_keylet() - Generate keylet for credential let mut credential_keylet_buffer = [0u8; 32]; let credential_keylet_result = unsafe { - host::credential_keylet( + host::credential_id( account_id.0.as_ptr(), // Subject account_id.0.len(), account_id.0.as_ptr(), // Issuer - same account for test @@ -624,7 +632,7 @@ fn test_keylet_generation_functions() -> i32 { let sequence_number: i32 = 1000; let sequence_number_bytes = sequence_number.to_be_bytes(); let escrow_keylet_result = unsafe { - host::escrow_keylet( + host::escrow_id( account_id.0.as_ptr(), account_id.0.len(), sequence_number_bytes.as_ptr(), @@ -645,7 +653,7 @@ fn test_keylet_generation_functions() -> i32 { let document_id: i32 = 42; let document_id_bytes = document_id.to_be_bytes(); let oracle_keylet_result = unsafe { - host::oracle_keylet( + host::oracle_id( account_id.0.as_ptr(), account_id.0.len(), document_id_bytes.as_ptr(), @@ -674,7 +682,7 @@ fn test_utility_functions() -> i32 { let test_data = b"Hello, XRPL WASM world!"; let mut hash_output = [0u8; 32]; let hash_result = unsafe { - host::compute_sha512_half( + host::sha512_half( test_data.as_ptr(), test_data.len(), hash_output.as_mut_ptr(), @@ -695,7 +703,7 @@ fn test_utility_functions() -> i32 { let nft_id = [0u8; 32]; // Dummy NFT ID for testing let mut nft_buffer = [0u8; 256]; let nft_result = unsafe { - host::get_nft( + host::nft_uri( account_id.0.as_ptr(), account_id.0.len(), nft_id.as_ptr(), @@ -766,7 +774,7 @@ fn test_data_update_functions() -> i32 { // Test 7.1: update_data() - Update current ledger entry data let update_payload = b"Updated ledger entry data from WASM test"; - let update_result = unsafe { host::update_data(update_payload.as_ptr(), update_payload.len()) }; + let update_result = unsafe { host::set_data(update_payload.as_ptr(), update_payload.len()) }; if update_result != update_payload.len() as i32 { let _ = trace_num("ERROR: update_data failed:", update_result as i64); diff --git a/src/test/app/wasm_fixtures/all_keylets/Cargo.lock b/src/test/app/wasm_fixtures/all_keylets/Cargo.lock index d45ec0df78..5da5b26f66 100644 --- a/src/test/app/wasm_fixtures/all_keylets/Cargo.lock +++ b/src/test/app/wasm_fixtures/all_keylets/Cargo.lock @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -74,24 +74,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -135,15 +135,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "version_check" @@ -152,9 +152,9 @@ 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#21c522f34a24b460297ebb6be1822680459bf37e" dependencies = [ "bs58", "quote", @@ -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#21c522f34a24b460297ebb6be1822680459bf37e" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/all_keylets/Cargo.toml b/src/test/app/wasm_fixtures/all_keylets/Cargo.toml index abd232e636..ad53fd62b1 100644 --- a/src/test/app/wasm_fixtures/all_keylets/Cargo.toml +++ b/src/test/app/wasm_fixtures/all_keylets/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/all_keylets/src/lib.rs b/src/test/app/wasm_fixtures/all_keylets/src/lib.rs index e3d9ab1b19..3a1e2cb498 100644 --- a/src/test/app/wasm_fixtures/all_keylets/src/lib.rs +++ b/src/test/app/wasm_fixtures/all_keylets/src/lib.rs @@ -4,39 +4,38 @@ extern crate std; use crate::host::{Error, Result, Result::Err, Result::Ok}; +use xrpl_std::core::keylets; use xrpl_std::core::ledger_objects::current_escrow::get_current_escrow; use xrpl_std::core::ledger_objects::current_escrow::CurrentEscrow; use xrpl_std::core::ledger_objects::ledger_object; use xrpl_std::core::ledger_objects::traits::CurrentEscrowFields; -use xrpl_std::core::types::account_id::AccountID; +use xrpl_std::core::ledger_objects::LedgerObjectFieldGetter; use xrpl_std::core::types::currency::Currency; use xrpl_std::core::types::issue::{IouIssue, Issue, XrpIssue}; -use xrpl_std::core::types::keylets; use xrpl_std::core::types::mpt_id::MptId; -use xrpl_std::core::types::uint::Hash256; use xrpl_std::host; -use xrpl_std::host::trace::{trace, trace_account, trace_data, trace_num, DataRepr}; +use xrpl_std::host::trace::{trace, trace_acct, trace_data, trace_num, DataRepr}; use xrpl_std::sfield; -#[unsafe(no_mangle)] -pub fn object_exists( +pub fn object_exists( keylet_result: Result, keylet_type: &str, - field: i32, + sfield: sfield::SField, ) -> Result { + let field = CODE; match keylet_result { Ok(keylet) => { let _ = trace_data(keylet_type, &keylet, DataRepr::AsHex); - let slot = unsafe { host::cache_ledger_obj(keylet.as_ptr(), keylet.len(), 0) }; + let slot = unsafe { host::cache_le(keylet.as_ptr(), keylet.len(), 0) }; if slot <= 0 { let _ = trace_num("Error: ", slot.into()); return Err(Error::from_code(slot)); } if field == 0 { let new_field = sfield::PreviousTxnID; - let _ = trace_num("Getting field: ", new_field.into()); - match ledger_object::get_field::(slot, new_field) { + let _ = trace_num("Getting field: ", new_field.clone().into()); + match ledger_object::get_field(slot, new_field) { Ok(data) => { let _ = trace_data("Field data: ", &data.0, DataRepr::AsHex); } @@ -47,9 +46,9 @@ pub fn object_exists( } } else { let _ = trace_num("Getting field: ", field.into()); - match ledger_object::get_field::(slot, field) { - Ok(data) => { - let _ = trace_data("Field data: ", &data.0, DataRepr::AsHex); + match ledger_object::get_field(slot, sfield) { + Ok(_data) => { + let _ = trace("Field data: retrieved"); } Err(result_code) => { let _ = trace_num("Error getting field: ", result_code.into()); @@ -74,10 +73,10 @@ pub extern "C" fn finish() -> i32 { let escrow: CurrentEscrow = get_current_escrow(); let account = escrow.get_account().unwrap_or_panic(); - let _ = trace_account("Account:", &account); + let _ = trace_acct("Account:", &account); let destination = escrow.get_destination().unwrap_or_panic(); - let _ = trace_account("Destination:", &destination); + let _ = trace_acct("Destination:", &destination); let mut seq = 5; @@ -99,82 +98,78 @@ pub extern "C" fn finish() -> i32 { }; } - let account_keylet = keylets::account_keylet(&account); - check_object_exists!(account_keylet, "Account", sfield::Account); + let accountroot_id = keylets::accountroot_id(&account); + check_object_exists!(accountroot_id, "Account", sfield::Account); let currency_code: &[u8; 3] = b"USD"; let currency: Currency = Currency::from(*currency_code); - let line_keylet = keylets::line_keylet(&account, &destination, ¤cy); - check_object_exists!(line_keylet, "Trustline", sfield::Generic); + let trustline_id = keylets::trustline_id(&account, &destination, ¤cy); + check_object_exists!(trustline_id, "Trustline", sfield::Generic); seq += 1; let asset1 = Issue::XRP(XrpIssue {}); let asset2 = Issue::IOU(IouIssue::new(destination, currency)); - check_object_exists!( - keylets::amm_keylet(&asset1, &asset2), - "AMM", - sfield::Account - ); + check_object_exists!(keylets::amm_id(&asset1, &asset2), "AMM", sfield::Account); - let check_keylet = keylets::check_keylet(&account, seq); - check_object_exists!(check_keylet, "Check", sfield::Account); + let check_id = keylets::check_id(&account, seq); + check_object_exists!(check_id, "Check", sfield::Account); seq += 1; let cred_type: &[u8] = b"termsandconditions"; - let credential_keylet = keylets::credential_keylet(&account, &account, cred_type); - check_object_exists!(credential_keylet, "Credential", sfield::Subject); + let credential_id = keylets::credential_id(&account, &account, cred_type); + check_object_exists!(credential_id, "Credential", sfield::Subject); seq += 1; - let delegate_keylet = keylets::delegate_keylet(&account, &destination); - check_object_exists!(delegate_keylet, "Delegate", sfield::Account); + let delegate_id = keylets::delegate_id(&account, &destination); + check_object_exists!(delegate_id, "Delegate", sfield::Account); seq += 1; - let deposit_preauth_keylet = keylets::deposit_preauth_keylet(&account, &destination); - check_object_exists!(deposit_preauth_keylet, "DepositPreauth", sfield::Account); + let deposit_preauth_id = keylets::deposit_preauth_id(&account, &destination); + check_object_exists!(deposit_preauth_id, "DepositPreauth", sfield::Account); seq += 1; - let did_keylet = keylets::did_keylet(&account); - check_object_exists!(did_keylet, "DID", sfield::Account); + let did_id = keylets::did_id(&account); + check_object_exists!(did_id, "DID", sfield::Account); seq += 1; - let escrow_keylet = keylets::escrow_keylet(&account, seq); - check_object_exists!(escrow_keylet, "Escrow", sfield::Account); + let escrow_id = keylets::escrow_id(&account, seq); + check_object_exists!(escrow_id, "Escrow", sfield::Account); seq += 1; - let mpt_issuance_keylet = keylets::mpt_issuance_keylet(&account, seq); + let mpt_issuance_id = keylets::mpt_issuance_id(&account, seq); let mpt_id = MptId::new(seq.try_into().unwrap(), account); - check_object_exists!(mpt_issuance_keylet, "MPTIssuance", sfield::Issuer); + check_object_exists!(mpt_issuance_id, "MPTIssuance", sfield::Issuer); seq += 1; - let mptoken_keylet = keylets::mptoken_keylet(&mpt_id, &destination); - check_object_exists!(mptoken_keylet, "MPToken", sfield::Account); + let mptoken_id = keylets::mptoken_id(&mpt_id, &destination); + check_object_exists!(mptoken_id, "MPToken", sfield::Account); - let nft_offer_keylet = keylets::nft_offer_keylet(&destination, 6); - check_object_exists!(nft_offer_keylet, "NFTokenOffer", sfield::Owner); + let nft_offer_id = keylets::nft_offer_id(&destination, 6); + check_object_exists!(nft_offer_id, "NFTokenOffer", sfield::Owner); - let offer_keylet = keylets::offer_keylet(&account, seq); - check_object_exists!(offer_keylet, "Offer", sfield::Account); + let offer_id = keylets::offer_id(&account, seq); + check_object_exists!(offer_id, "Offer", sfield::Account); seq += 1; - let paychan_keylet = keylets::paychan_keylet(&account, &destination, seq); - check_object_exists!(paychan_keylet, "PayChannel", sfield::Account); + let paychan_id = keylets::paychan_id(&account, &destination, seq); + check_object_exists!(paychan_id, "PayChannel", sfield::Account); seq += 1; - let pd_keylet = keylets::permissioned_domain_keylet(&account, seq); - check_object_exists!(pd_keylet, "PermissionedDomain", sfield::Owner); + let pd_id = keylets::permissioned_domain_id(&account, seq); + check_object_exists!(pd_id, "PermissionedDomain", sfield::Owner); seq += 1; - let signers_keylet = keylets::signers_keylet(&account); - check_object_exists!(signers_keylet, "SignerList", sfield::Generic); + let signers_id = keylets::signers_id(&account); + check_object_exists!(signers_id, "SignerList", sfield::Generic); seq += 1; seq += 1; // ticket sequence number is one greater - let ticket_keylet = keylets::ticket_keylet(&account, seq); - check_object_exists!(ticket_keylet, "Ticket", sfield::Account); + let ticket_id = keylets::ticket_id(&account, seq); + check_object_exists!(ticket_id, "Ticket", sfield::Account); seq += 1; - let vault_keylet = keylets::vault_keylet(&account, seq); - check_object_exists!(vault_keylet, "Vault", sfield::Account); + let vault_id = keylets::vault_id(&account, seq); + check_object_exists!(vault_id, "Vault", sfield::Account); // seq += 1; 1 // All keylets exist, finish the escrow. diff --git a/src/test/app/wasm_fixtures/bad_align.c b/src/test/app/wasm_fixtures/bad_align.c index cc291c70f1..560245e762 100644 --- a/src/test/app/wasm_fixtures/bad_align.c +++ b/src/test/app/wasm_fixtures/bad_align.c @@ -1,8 +1,8 @@ #include int32_t float_from_uint(uint8_t const *, int32_t, uint8_t *, int32_t, int32_t); -int32_t check_keylet(uint8_t const *, int32_t, uint8_t const *, int32_t, - uint8_t *, int32_t); +int32_t check_id(uint8_t const *, int32_t, uint8_t const *, int32_t, uint8_t *, + int32_t); uint8_t e_data1[32 * 1024]; uint8_t e_data2[32 * 1024]; @@ -31,10 +31,9 @@ int32_t test2() // Set up valid non-zero AccountID (20 bytes) at offset 10 for (int i = 0; i < 20; i++) e_data2[10 + i] = i + 1; - // Call check_keylet with misaligned uint32 at &e_data2[1] to hit line 72 in + // Call check_id with misaligned uint32 at &e_data2[1] to hit line 72 in // HostFuncWrapper.cpp - int32_t result = - check_keylet(&e_data2[10], 20, &e_data2[1], 4, &e_data2[35], 32); + int32_t result = check_id(&e_data2[10], 20, &e_data2[1], 4, &e_data2[35], 32); // Return the misaligned value directly to validate it was read correctly (-1 // if all 0xFF) return result >= 0 ? *((int32_t *)(&e_data2[36])) : result; diff --git a/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock b/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock index 4a4b71bdcc..d7d91db071 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock +++ b/src/test/app/wasm_fixtures/codecov_tests/Cargo.lock @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -74,24 +74,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.108" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -135,15 +135,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "version_check" @@ -152,9 +152,9 @@ 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#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ "bs58", "quote", @@ -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#9822d645870908a79d87a57b0244caa6359cb9cf" dependencies = [ - "xrpl-address-macro", + "xrpl-macros", ] diff --git a/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml b/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml index 81a682bb37..1cc49ac490 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml +++ b/src/test/app/wasm_fixtures/codecov_tests/Cargo.toml @@ -15,4 +15,4 @@ 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" } diff --git a/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs b/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs index c99a0047d5..6204dff0a2 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs +++ b/src/test/app/wasm_fixtures/codecov_tests/src/host_bindings_loose.rs @@ -19,20 +19,20 @@ pub const FLOAT_ROUNDING_MODES_UPWARD: i32 = 3; #[allow(unused)] #[link(wasm_import_module = "host_lib")] unsafe extern "C" { - pub fn get_parent_ledger_hash(out_buff_ptr: i32, out_buff_len: i32) -> i32; + pub fn parent_ldgr_hash(out_buff_ptr: i32, out_buff_len: i32) -> i32; - pub fn cache_ledger_obj(keylet_ptr: i32, keylet_len: i32, cache_num: i32) -> i32; + pub fn cache_le(keylet_ptr: i32, keylet_len: i32, cache_num: i32) -> i32; - pub fn get_tx_nested_array_len(locator_ptr: i32, locator_len: i32) -> i32; + pub fn tx_inner_arr_len(locator_ptr: i32, locator_len: i32) -> i32; - pub fn account_keylet( + pub fn accountroot_id( account_ptr: i32, account_len: i32, out_buff_ptr: *mut u8, out_buff_len: usize, ) -> i32; - pub fn line_keylet( + pub fn trustline_id( account1_ptr: *const u8, account1_len: usize, account2_ptr: *const u8, diff --git a/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs b/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs index 239728575a..ea32e93a88 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs +++ b/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs @@ -6,11 +6,11 @@ extern crate std; use core::panic; use xrpl_std::core::current_tx::escrow_finish::{get_current_escrow_finish, EscrowFinish}; use xrpl_std::core::current_tx::traits::TransactionCommonFields; +use xrpl_std::core::keylets; use xrpl_std::core::locator::Locator; use xrpl_std::core::types::blob::DEFAULT_BLOB_SIZE; use xrpl_std::core::types::issue::Issue; use xrpl_std::core::types::issue::XrpIssue; -use xrpl_std::core::types::keylets; use xrpl_std::core::types::mpt_id::MptId; use xrpl_std::host; use xrpl_std::host::error_codes; @@ -58,28 +58,24 @@ pub extern "C" fn finish() -> i32 { // The float tests are also in a separate file (float_tests). // ######################################## with_buffer::<4, _, _>(|ptr, len| { - check_result( - unsafe { host::get_ledger_sqn(ptr, len) }, - 4, - "get_ledger_sqn", - ); + check_result(unsafe { host::ldgr_index(ptr, len) }, 4, "ldgr_index"); }); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_parent_ledger_time(ptr, len) }, + unsafe { host::parent_ldgr_time(ptr, len) }, 4, - "get_parent_ledger_time", + "parent_ldgr_time", ); }); with_buffer::<32, _, _>(|ptr, len| { check_result( - unsafe { host::get_parent_ledger_hash(ptr, len) }, + unsafe { host::parent_ldgr_hash(ptr, len) }, 32, - "get_parent_ledger_hash", + "parent_ldgr_hash", ); }); with_buffer::<4, _, _>(|ptr, len| { - check_result(unsafe { host::get_base_fee(ptr, len) }, 4, "get_base_fee"); + check_result(unsafe { host::base_fee(ptr, len) }, 4, "base_fee"); }); let amendment_name: &[u8] = b"test_amendment"; let amendment_id: [u8; 32] = [1; 32]; @@ -95,93 +91,89 @@ pub extern "C" fn finish() -> i32 { ); let tx: EscrowFinish = get_current_escrow_finish(); let account = tx.get_account().unwrap_or_panic(); // get_tx_field under the hood - let keylet = keylets::account_keylet(&account).unwrap_or_panic(); // account_keylet under the hood + let keylet = keylets::accountroot_id(&account).unwrap_or_panic(); // accountroot_id under the hood check_result( - unsafe { host::cache_ledger_obj(keylet.as_ptr(), keylet.len(), 0) }, + unsafe { host::cache_le(keylet.as_ptr(), keylet.len(), 0) }, 1, - "cache_ledger_obj", + "cache_le", ); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_current_ledger_obj_field(sfield::Account, ptr, len) }, + unsafe { host::home_le_field(sfield::Account.into(), ptr, len) }, 20, - "get_current_ledger_obj_field", + "home_le_field", ); }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_ledger_obj_field(1, sfield::Account, ptr, len) }, + unsafe { host::le_field(1, sfield::Account.into(), ptr, len) }, 20, - "get_ledger_obj_field", + "le_field", ); }); let mut locator = Locator::new(); locator.pack(sfield::Account); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_tx_nested_field(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::tx_inner(locator.as_ptr(), locator.len(), ptr, len) }, 20, - "get_tx_nested_field", + "tx_inner", ); }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { - host::get_current_ledger_obj_nested_field(locator.as_ptr(), locator.len(), ptr, len) - }, + unsafe { host::home_le_inner(locator.as_ptr(), locator.len(), ptr, len) }, 20, - "get_current_ledger_obj_nested_field", + "home_le_inner", ); }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { - host::get_ledger_obj_nested_field(1, locator.as_ptr(), locator.len(), ptr, len) - }, + unsafe { host::le_inner(1, locator.as_ptr(), locator.len(), ptr, len) }, 20, - "get_ledger_obj_nested_field", + "le_inner", ); }); check_result( - unsafe { host::get_tx_array_len(sfield::Memos) }, + unsafe { host::tx_arr_len(sfield::Memos.into()) }, 32, - "get_tx_array_len", + "tx_arr_len", ); check_result( - unsafe { host::get_current_ledger_obj_array_len(sfield::Memos) }, + unsafe { host::home_le_arr_len(sfield::Memos.into()) }, 32, - "get_current_ledger_obj_array_len", + "home_le_arr_len", ); check_result( - unsafe { host::get_ledger_obj_array_len(1, sfield::Memos) }, + unsafe { host::le_arr_len(1, sfield::Memos.into()) }, 32, - "get_ledger_obj_array_len", + "le_arr_len", ); check_result( - unsafe { host::get_tx_nested_array_len(locator.as_ptr(), locator.len()) }, + unsafe { host::tx_inner_arr_len(locator.as_ptr(), locator.len()) }, 32, - "get_tx_nested_array_len", + "tx_inner_arr_len", ); check_result( - unsafe { host::get_current_ledger_obj_nested_array_len(locator.as_ptr(), locator.len()) }, + unsafe { host::home_le_inner_arr_len(locator.as_ptr(), locator.len()) }, 32, - "get_current_ledger_obj_nested_array_len", + "home_le_inner_arr_len", ); check_result( - unsafe { host::get_ledger_obj_nested_array_len(1, locator.as_ptr(), locator.len()) }, + unsafe { host::le_inner_arr_len(1, locator.as_ptr(), locator.len()) }, 32, - "get_ledger_obj_nested_array_len", + "le_inner_arr_len", ); check_result( - unsafe { host::update_data(account.0.as_ptr(), account.0.len()) }, + unsafe { host::set_data(account.0.as_ptr(), account.0.len()) }, 20, - "update_data", + "set_data", ); with_buffer::<32, _, _>(|ptr, len| { check_result( - unsafe { host::compute_sha512_half(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::sha512_half(locator.as_ptr(), locator.len(), ptr, len) }, 32, - "compute_sha512_half", + "sha512_half", ); }); let message: &[u8] = b"test message"; @@ -206,7 +198,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<18, _, _>(|ptr, len| { check_result( unsafe { - host::get_nft( + host::nft_uri( account.0.as_ptr(), account.0.len(), nft_id.as_ptr(), @@ -216,44 +208,44 @@ pub extern "C" fn finish() -> i32 { ) }, 18, - "get_nft", + "nft_uri", ) }); with_buffer::<20, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_issuer(nft_id.as_ptr(), nft_id.len(), ptr, len) }, + unsafe { host::nft_issuer(nft_id.as_ptr(), nft_id.len(), ptr, len) }, 20, - "get_nft_issuer", + "nft_issuer", ) }); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_taxon(nft_id.as_ptr(), nft_id.len(), ptr, len) }, + unsafe { host::nft_taxon(nft_id.as_ptr(), nft_id.len(), ptr, len) }, 4, - "get_nft_taxon", + "nft_taxon", ) }); check_result( - unsafe { host::get_nft_flags(nft_id.as_ptr(), nft_id.len()) }, + unsafe { host::nft_flags(nft_id.as_ptr(), nft_id.len()) }, 8, - "get_nft_flags", + "nft_flags", ); check_result( - unsafe { host::get_nft_transfer_fee(nft_id.as_ptr(), nft_id.len()) }, + unsafe { host::nft_xfer_fee(nft_id.as_ptr(), nft_id.len()) }, 10, - "get_nft_transfer_fee", + "nft_xfer_fee", ); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_serial(nft_id.as_ptr(), nft_id.len(), ptr, len) }, + unsafe { host::nft_serial(nft_id.as_ptr(), nft_id.len(), ptr, len) }, 4, - "get_nft_serial", + "nft_serial", ) }); let message = "testing trace"; check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr(), message.len(), account.0.as_ptr(), @@ -261,12 +253,12 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_account", + "trace_acct", ); let amount = &[0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F]; // 95 drops of XRP check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), amount.as_ptr(), @@ -274,12 +266,12 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_amount", + "trace_amt", ); let amount = &[0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; // 0 drops of XRP check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), amount.as_ptr(), @@ -287,36 +279,36 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_amount_zero", + "trace_amt_zero", ); // ######################################## // Step #2: Test set_data edge cases // ######################################## check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(-1, 4) }, + unsafe { host_bindings_loose::parent_ldgr_hash(-1, 4) }, error_codes::INVALID_PARAMS, - "get_parent_ledger_hash_neg_ptr", + "parent_ldgr_hash_neg_ptr", ); with_buffer::<4, _, _>(|ptr, _len| { check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(ptr as i32, -1) }, + unsafe { host_bindings_loose::parent_ldgr_hash(ptr as i32, -1) }, error_codes::INVALID_PARAMS, - "get_parent_ledger_hash_neg_len", + "parent_ldgr_hash_neg_len", ) }); with_buffer::<3, _, _>(|ptr, len| { check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(ptr as i32, len as i32) }, + unsafe { host_bindings_loose::parent_ldgr_hash(ptr as i32, len as i32) }, error_codes::BUFFER_TOO_SMALL, - "get_parent_ledger_hash_buf_too_small", + "parent_ldgr_hash_buf_too_small", ) }); with_buffer::<4, _, _>(|ptr, _len| { check_result( - unsafe { host_bindings_loose::get_parent_ledger_hash(ptr as i32, 1_000_000_000) }, + unsafe { host_bindings_loose::parent_ldgr_hash(ptr as i32, 1_000_000_000) }, error_codes::POINTER_OUT_OF_BOUNDS, - "get_parent_ledger_hash_len_too_long", + "parent_ldgr_hash_len_too_long", ) }); @@ -326,46 +318,44 @@ pub extern "C" fn finish() -> i32 { // SField check_result( - unsafe { host::get_tx_array_len(2) }, // not a valid SField value + unsafe { host::tx_arr_len(2) }, // not a valid SField value error_codes::INVALID_FIELD, - "get_tx_array_len_invalid_sfield", + "tx_arr_len_invalid_sfield", ); // Slice check_result( - unsafe { host_bindings_loose::get_tx_nested_array_len(-1, locator.len() as i32) }, + unsafe { host_bindings_loose::tx_inner_arr_len(-1, locator.len() as i32) }, error_codes::INVALID_PARAMS, - "get_tx_nested_array_len_neg_ptr", + "tx_inner_arr_len_neg_ptr", ); check_result( - unsafe { host_bindings_loose::get_tx_nested_array_len(locator.as_ptr() as i32, -1) }, + unsafe { host_bindings_loose::tx_inner_arr_len(locator.as_ptr() as i32, -1) }, error_codes::INVALID_PARAMS, - "get_tx_nested_array_len_neg_len", + "tx_inner_arr_len_neg_len", ); let long_len = DEFAULT_BLOB_SIZE + 1; check_result( - unsafe { - host_bindings_loose::get_tx_nested_array_len(locator.as_ptr() as i32, long_len as i32) - }, + unsafe { host_bindings_loose::tx_inner_arr_len(locator.as_ptr() as i32, long_len as i32) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_tx_nested_array_len_too_long", + "tx_inner_arr_len_too_long", ); check_result( unsafe { - host_bindings_loose::get_tx_nested_array_len( + host_bindings_loose::tx_inner_arr_len( locator.as_ptr() as i32 + 1_000_000_000, locator.len() as i32, ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "get_tx_nested_array_len_ptr_oob", + "tx_inner_arr_len_ptr_oob", ); // uint32 with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::check_keylet( + host::check_id( account.0.as_ptr(), account.0.len(), locator.as_ptr().wrapping_add(1_000_000_000), @@ -375,13 +365,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "check_keylet_oob_len_u32", + "check_id_oob_len_u32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::check_keylet( + host::check_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -391,7 +381,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "check_keylet_wrong_len_u32", + "check_id_wrong_len_u32", ) }); @@ -430,28 +420,26 @@ pub extern "C" fn finish() -> i32 { // uint256 check_result( unsafe { - host_bindings_loose::cache_ledger_obj( + host_bindings_loose::cache_le( locator.as_ptr() as i32 + 1_000_000_000, locator.len() as i32, 1, ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "cache_ledger_obj_ptr_oob", + "cache_le_ptr_oob", ); check_result( - unsafe { - host_bindings_loose::cache_ledger_obj(locator.as_ptr() as i32, locator.len() as i32, 1) - }, + unsafe { host_bindings_loose::cache_le(locator.as_ptr() as i32, locator.len() as i32, 1) }, error_codes::INVALID_PARAMS, - "cache_ledger_obj_wrong_len", + "cache_le_wrong_len", ); // AccountID with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::account_keylet( + host_bindings_loose::accountroot_id( locator.as_ptr() as i32 + 1_000_000_000, locator.len() as i32, ptr, @@ -459,13 +447,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "account_keylet_len_oob", + "accountroot_id_len_oob", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::account_keylet( + host_bindings_loose::accountroot_id( locator.as_ptr() as i32, locator.len() as i32, ptr, @@ -473,7 +461,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "account_keylet_wrong_len", + "accountroot_id_wrong_len", ) }); @@ -481,7 +469,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::line_keylet( + host_bindings_loose::trustline_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -493,13 +481,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "line_keylet_len_oob_currency", + "trustline_id_len_oob_currency", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host_bindings_loose::line_keylet( + host_bindings_loose::trustline_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -511,7 +499,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "line_keylet_wrong_len_currency", + "trustline_id_wrong_len_currency", ) }); @@ -520,7 +508,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), asset1_bytes.len(), locator.as_ptr().wrapping_add(1_000_000_000), @@ -530,13 +518,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "amm_keylet_len_oob_asset2", + "amm_id_len_oob_asset2", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), asset1_bytes.len(), locator.as_ptr(), @@ -546,14 +534,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_len_wrong_len_asset2", + "amm_id_len_wrong_len_asset2", ) }); let currency: &[u8] = b"USD00000000000000000"; // 20 bytes with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), asset1_bytes.len(), currency.as_ptr(), @@ -563,14 +551,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_len_wrong_non_xrp_currency_len", + "amm_id_len_wrong_non_xrp_currency_len", ) }); let xrp_issue: &[u8] = &[0; 40]; // 40 bytes with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( xrp_issue.as_ptr(), xrp_issue.len(), asset1_bytes.as_ptr(), @@ -580,14 +568,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_len_wrong_xrp_currency_len", + "amm_id_len_wrong_xrp_currency_len", ) }); let mptid = MptId::new(1, account); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( mptid.as_ptr(), mptid.len(), asset1_bytes.as_ptr(), @@ -597,7 +585,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "amm_keylet_mpt", + "amm_id_mpt", ) }); @@ -622,39 +610,39 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_tx_field(2, ptr, len) }, + unsafe { host::tx_field(2, ptr, len) }, error_codes::INVALID_FIELD, - "get_tx_field_invalid_sfield", + "tx_field_invalid_sfield", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_current_ledger_obj_field(2, ptr, len) }, + unsafe { host::home_le_field(2, ptr, len) }, error_codes::INVALID_FIELD, - "get_current_ledger_obj_field_invalid_sfield", + "home_le_field_invalid_sfield", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_ledger_obj_field(1, 2, ptr, len) }, + unsafe { host::le_field(1, 2, ptr, len) }, error_codes::INVALID_FIELD, - "get_ledger_obj_field_invalid_sfield", + "le_field_invalid_sfield", ); }); check_result( - unsafe { host::get_tx_array_len(2) }, + unsafe { host::tx_arr_len(2) }, error_codes::INVALID_FIELD, - "get_tx_array_len_invalid_sfield", + "tx_arr_len_invalid_sfield", ); check_result( - unsafe { host::get_current_ledger_obj_array_len(2) }, + unsafe { host::home_le_arr_len(2) }, error_codes::INVALID_FIELD, - "get_current_ledger_obj_array_len_invalid_sfield", + "home_le_arr_len_invalid_sfield", ); check_result( - unsafe { host::get_ledger_obj_array_len(1, 2) }, + unsafe { host::le_arr_len(1, 2) }, error_codes::INVALID_FIELD, - "get_ledger_obj_array_len_invalid_sfield", + "le_arr_len_invalid_sfield", ); // invalid Slice @@ -671,47 +659,45 @@ pub extern "C" fn finish() -> i32 { ); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_tx_nested_field(locator.as_ptr(), long_len, ptr, len) }, + unsafe { host::tx_inner(locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_tx_nested_field_too_big_slice", + "tx_inner_too_big_slice", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { - host::get_current_ledger_obj_nested_field(locator.as_ptr(), long_len, ptr, len) - }, + unsafe { host::home_le_inner(locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_current_ledger_obj_nested_field_too_big_slice", + "home_le_inner_too_big_slice", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_ledger_obj_nested_field(1, locator.as_ptr(), long_len, ptr, len) }, + unsafe { host::le_inner(1, locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_ledger_obj_nested_field_too_big_slice", + "le_inner_too_big_slice", ); }); check_result( - unsafe { host::get_tx_nested_array_len(locator.as_ptr(), long_len) }, + unsafe { host::tx_inner_arr_len(locator.as_ptr(), long_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_tx_nested_array_len_too_big_slice", + "tx_inner_arr_len_too_big_slice", ); check_result( - unsafe { host::get_current_ledger_obj_nested_array_len(locator.as_ptr(), long_len) }, + unsafe { host::home_le_inner_arr_len(locator.as_ptr(), long_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_current_ledger_obj_nested_array_len_too_big_slice", + "home_le_inner_arr_len_too_big_slice", ); check_result( - unsafe { host::get_ledger_obj_nested_array_len(1, locator.as_ptr(), long_len) }, + unsafe { host::le_inner_arr_len(1, locator.as_ptr(), long_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "get_ledger_obj_nested_array_len_too_big_slice", + "le_inner_arr_len_too_big_slice", ); let too_big_data_len = XRPL_CONTRACT_DATA_SIZE + 1; check_result( - unsafe { host::update_data(locator.as_ptr(), too_big_data_len) }, + unsafe { host::set_data(locator.as_ptr(), too_big_data_len) }, error_codes::DATA_FIELD_TOO_LARGE, - "update_data_too_big_slice", + "set_data_too_big_slice", ); check_result( unsafe { @@ -757,15 +743,15 @@ pub extern "C" fn finish() -> i32 { ); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::compute_sha512_half(locator.as_ptr(), long_len, ptr, len) }, + unsafe { host::sha512_half(locator.as_ptr(), long_len, ptr, len) }, error_codes::DATA_FIELD_TOO_LARGE, - "compute_sha512_half_too_big_slice", + "sha512_half_too_big_slice", ); }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::amm_keylet( + host::amm_id( asset1_bytes.as_ptr(), long_len, asset1_bytes.as_ptr(), @@ -775,13 +761,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "amm_keylet_too_big_slice", + "amm_id_too_big_slice", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::credential_keylet( + host::credential_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -793,13 +779,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "credential_keylet_too_big_slice", + "credential_id_too_big_slice", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mptoken_keylet( + host::mptoken_id( mptid.as_ptr(), long_len, account.0.as_ptr(), @@ -809,7 +795,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "mptoken_keylet_too_big_slice_mptid", + "mptoken_id_too_big_slice_mptid", ) }); check_result( @@ -828,7 +814,7 @@ pub extern "C" fn finish() -> i32 { let float: [u8; 8] = [0xD4, 0x83, 0x8D, 0x7E, 0xA4, 0xC6, 0x80, 0x00]; check_result( unsafe { - host::trace_opaque_float( + host::trace_xfloat( message.as_ptr(), message.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -836,11 +822,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_opaque_float_oob_slice", + "trace_xfloat_oob_slice", ); check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), locator.as_ptr().wrapping_add(1_000_000_000), @@ -848,11 +834,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_amount_oob_slice", + "trace_amt_oob_slice", ); check_result( unsafe { - host::float_compare( + host::float_cmp( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -860,11 +846,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_compare_oob_slice1", + "float_cmp_oob_slice1", ); check_result( unsafe { - host::float_compare( + host::float_cmp( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -872,7 +858,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_compare_oob_slice2", + "float_cmp_oob_slice2", ); with_buffer::<2, _, _>(|ptr, len| { check_result( @@ -911,7 +897,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_subtract( + host::float_sub( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -922,13 +908,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_subtract_oob_slice1", + "float_sub_oob_slice1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_subtract( + host::float_sub( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -939,13 +925,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_subtract_oob_slice2", + "float_sub_oob_slice2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_multiply( + host::float_mult( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -956,13 +942,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_multiply_oob_slice1", + "float_mult_oob_slice1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_multiply( + host::float_mult( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -973,13 +959,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_multiply_oob_slice2", + "float_mult_oob_slice2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_divide( + host::float_div( float.as_ptr().wrapping_add(1_000_000_000), float.len(), float.as_ptr(), @@ -990,13 +976,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_divide_oob_slice1", + "float_div_oob_slice1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::float_divide( + host::float_div( float.as_ptr(), float.len(), float.as_ptr().wrapping_add(1_000_000_000), @@ -1007,7 +993,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "float_divide_oob_slice2", + "float_div_oob_slice2", ) }); with_buffer::<2, _, _>(|ptr, len| { @@ -1048,7 +1034,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::escrow_keylet( + host::escrow_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1058,13 +1044,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "escrow_keylet_wrong_size_uint32", + "escrow_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::mpt_issuance_keylet( + host::mpt_issuance_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1074,13 +1060,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mpt_issuance_keylet_wrong_size_uint32", + "mpt_issuance_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::nft_offer_keylet( + host::nft_offer_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1090,13 +1076,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "nft_offer_keylet_wrong_size_uint32", + "nft_offer_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::offer_keylet( + host::offer_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1106,13 +1092,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "offer_keylet_wrong_size_uint32", + "offer_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::oracle_keylet( + host::oracle_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1122,13 +1108,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "oracle_keylet_wrong_size_uint32", + "oracle_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::paychan_keylet( + host::paychan_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1140,13 +1126,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "paychan_keylet_wrong_size_uint32", + "paychan_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::permissioned_domain_keylet( + host::permissioned_domain_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1156,13 +1142,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "permissioned_domain_keylet_wrong_size_uint32", + "permissioned_domain_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::ticket_keylet( + host::ticket_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1172,13 +1158,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "ticket_keylet_wrong_size_uint32", + "ticket_id_wrong_size_uint32", ) }); with_buffer::<32, _, _>(|ptr, len| { check_result( unsafe { - host::vault_keylet( + host::vault_id( account.0.as_ptr(), account.0.len(), account.0.as_ptr(), @@ -1188,21 +1174,21 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "vault_keylet_wrong_size_uint32", + "vault_id_wrong_size_uint32", ) }); // invalid UInt256 check_result( - unsafe { host::cache_ledger_obj(locator.as_ptr(), locator.len(), 0) }, + unsafe { host::cache_le(locator.as_ptr(), locator.len(), 0) }, error_codes::INVALID_PARAMS, - "cache_ledger_obj_wrong_size_uint256", + "cache_le_wrong_size_uint256", ); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::get_nft( + host::nft_uri( account.0.as_ptr(), account.0.len(), locator.as_ptr(), @@ -1212,38 +1198,38 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "get_nft_wrong_size_uint256", + "nft_uri_wrong_size_uint256", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_issuer(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::nft_issuer(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "get_nft_issuer_wrong_size_uint256", + "nft_issuer_wrong_size_uint256", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_taxon(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::nft_taxon(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "get_nft_taxon_wrong_size_uint256", + "nft_taxon_wrong_size_uint256", ) }); check_result( - unsafe { host::get_nft_flags(locator.as_ptr(), locator.len()) }, + unsafe { host::nft_flags(locator.as_ptr(), locator.len()) }, error_codes::INVALID_PARAMS, - "get_nft_flags_wrong_size_uint256", + "nft_flags_wrong_size_uint256", ); check_result( - unsafe { host::get_nft_transfer_fee(locator.as_ptr(), locator.len()) }, + unsafe { host::nft_xfer_fee(locator.as_ptr(), locator.len()) }, error_codes::INVALID_PARAMS, - "get_nft_transfer_fee_wrong_size_uint256", + "nft_xfer_fee_wrong_size_uint256", ); with_buffer::<4, _, _>(|ptr, len| { check_result( - unsafe { host::get_nft_serial(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::nft_serial(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "get_nft_serial_wrong_size_uint256", + "nft_serial_wrong_size_uint256", ) }); @@ -1251,9 +1237,9 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::account_keylet(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::accountroot_id(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "account_keylet_wrong_size_account_id", + "accountroot_id_wrong_size_account_id", ) }); let seq: i32 = 1; @@ -1261,7 +1247,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::check_keylet( + host::check_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1271,13 +1257,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "check_keylet_wrong_size_account_id", + "check_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::credential_keylet( + host::credential_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1289,13 +1275,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "credential_keylet_wrong_size_account_id1", + "credential_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::credential_keylet( + host::credential_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1307,13 +1293,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "credential_keylet_wrong_size_account_id2", + "credential_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::delegate_keylet( + host::delegate_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1323,13 +1309,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "delegate_keylet_wrong_size_account_id1", + "delegate_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::delegate_keylet( + host::delegate_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1339,13 +1325,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "delegate_keylet_wrong_size_account_id2", + "delegate_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::deposit_preauth_keylet( + host::deposit_preauth_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1355,13 +1341,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "deposit_preauth_keylet_wrong_size_account_id1", + "deposit_preauth_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::deposit_preauth_keylet( + host::deposit_preauth_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1371,20 +1357,20 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "deposit_preauth_keylet_wrong_size_account_id2", + "deposit_preauth_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::did_keylet(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::did_id(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "did_keylet_wrong_size_account_id", + "did_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::escrow_keylet( + host::escrow_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1394,13 +1380,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "escrow_keylet_wrong_size_account_id", + "escrow_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::line_keylet( + host::trustline_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1412,13 +1398,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "line_keylet_wrong_size_account_id1", + "trustline_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::line_keylet( + host::trustline_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1430,13 +1416,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "line_keylet_wrong_size_account_id2", + "trustline_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mpt_issuance_keylet( + host::mpt_issuance_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1446,13 +1432,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mpt_issuance_keylet_wrong_size_account_id", + "mpt_issuance_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mptoken_keylet( + host::mptoken_id( mptid.as_ptr(), mptid.len(), locator.as_ptr(), @@ -1462,13 +1448,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mptoken_keylet_wrong_size_account_id", + "mptoken_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::nft_offer_keylet( + host::nft_offer_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1478,13 +1464,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "nft_offer_keylet_wrong_size_account_id", + "nft_offer_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::offer_keylet( + host::offer_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1494,13 +1480,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "offer_keylet_wrong_size_account_id", + "offer_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::oracle_keylet( + host::oracle_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1510,13 +1496,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "oracle_keylet_wrong_size_account_id", + "oracle_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::paychan_keylet( + host::paychan_id( locator.as_ptr(), // invalid AccountID size locator.len(), account.0.as_ptr(), @@ -1528,13 +1514,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "paychan_keylet_wrong_size_account_id1", + "paychan_id_wrong_size_account_id1", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::paychan_keylet( + host::paychan_id( account.0.as_ptr(), account.0.len(), locator.as_ptr(), // invalid AccountID size @@ -1546,13 +1532,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "paychan_keylet_wrong_size_account_id2", + "paychan_id_wrong_size_account_id2", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::permissioned_domain_keylet( + host::permissioned_domain_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1562,20 +1548,20 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "permissioned_domain_keylet_wrong_size_account_id", + "permissioned_domain_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( - unsafe { host::signers_keylet(locator.as_ptr(), locator.len(), ptr, len) }, + unsafe { host::signers_id(locator.as_ptr(), locator.len(), ptr, len) }, error_codes::INVALID_PARAMS, - "signers_keylet_wrong_size_account_id", + "signers_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::ticket_keylet( + host::ticket_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1585,13 +1571,13 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "ticket_keylet_wrong_size_account_id", + "ticket_id_wrong_size_account_id", ) }); with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::vault_keylet( + host::vault_id( locator.as_ptr(), locator.len(), seq_bytes.as_ptr(), @@ -1601,14 +1587,14 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "vault_keylet_wrong_size_account_id", + "vault_id_wrong_size_account_id", ) }); let uint256: &[u8] = b"00000000000000000000000000000001"; with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::get_nft( + host::nft_uri( locator.as_ptr(), locator.len(), uint256.as_ptr(), @@ -1618,12 +1604,12 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "get_nft_wrong_size_account_id", + "nft_uri_wrong_size_account_id", ) }); check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr(), message.len(), locator.as_ptr(), @@ -1631,7 +1617,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "trace_account_wrong_size_account_id", + "trace_acct_wrong_size_account_id", ); // invalid Currency was already tested above @@ -1652,7 +1638,7 @@ pub extern "C" fn finish() -> i32 { ); check_result( unsafe { - host::trace_opaque_float( + host::trace_xfloat( message.as_ptr().wrapping_add(1_000_000_000), message.len(), float.as_ptr(), @@ -1660,11 +1646,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_opaque_float_oob_string", + "trace_xfloat_oob_string", ); check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr().wrapping_add(1_000_000_000), message.len(), account.0.as_ptr(), @@ -1672,11 +1658,11 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_account_oob_string", + "trace_acct_oob_string", ); check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr().wrapping_add(1_000_000_000), message.len(), amount.as_ptr(), @@ -1684,7 +1670,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::POINTER_OUT_OF_BOUNDS, - "trace_amount_oob_string", + "trace_amt_oob_string", ); // trace too large @@ -1708,15 +1694,13 @@ pub extern "C" fn finish() -> i32 { "trace_num_too_long", ); check_result( - unsafe { - host::trace_opaque_float(message.as_ptr(), long_len, float.as_ptr(), float.len()) - }, + unsafe { host::trace_xfloat(message.as_ptr(), long_len, float.as_ptr(), float.len()) }, error_codes::DATA_FIELD_TOO_LARGE, - "trace_opaque_float_too_long", + "trace_xfloat_too_long", ); check_result( unsafe { - host::trace_account( + host::trace_acct( message.as_ptr(), long_len, account.0.as_ptr(), @@ -1724,19 +1708,19 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::DATA_FIELD_TOO_LARGE, - "trace_account_too_long", + "trace_acct_too_long", ); check_result( - unsafe { host::trace_amount(message.as_ptr(), long_len, amount.as_ptr(), amount.len()) }, + unsafe { host::trace_amt(message.as_ptr(), long_len, amount.as_ptr(), amount.len()) }, error_codes::DATA_FIELD_TOO_LARGE, - "trace_amount_too_long", + "trace_amt_too_long", ); // trace amount errors check_result( unsafe { - host::trace_amount( + host::trace_amt( message.as_ptr(), message.len(), locator.as_ptr(), @@ -1744,7 +1728,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "trace_amount_wrong_length", + "trace_amt_wrong_length", ); // other misc errors @@ -1752,7 +1736,7 @@ pub extern "C" fn finish() -> i32 { with_buffer::<2, _, _>(|ptr, len| { check_result( unsafe { - host::mptoken_keylet( + host::mptoken_id( locator.as_ptr(), locator.len(), account.0.as_ptr(), @@ -1762,7 +1746,7 @@ pub extern "C" fn finish() -> i32 { ) }, error_codes::INVALID_PARAMS, - "mptoken_keylet_mptid_wrong_length", + "mptoken_id_mptid_wrong_length", ) }); check_result( @@ -1783,7 +1767,7 @@ pub extern "C" fn finish() -> i32 { let empty: &[u8] = b""; check_result( unsafe { - host::trace_account( + host::trace_acct( empty.as_ptr(), empty.len(), account.0.as_ptr(), @@ -1791,7 +1775,7 @@ pub extern "C" fn finish() -> i32 { ) }, 0, - "trace_account_check_desync", + "trace_acct_check_desync", ); 1 // <-- If we get here, finish the escrow. diff --git a/src/test/app/wasm_fixtures/copyFixtures.py b/src/test/app/wasm_fixtures/copyFixtures.py index 3d9faddbed..8e457b71e2 100644 --- a/src/test/app/wasm_fixtures/copyFixtures.py +++ b/src/test/app/wasm_fixtures/copyFixtures.py @@ -1,20 +1,87 @@ # cspell: disable import os -import sys -import subprocess import re +import shlex +import subprocess +import sys +import tempfile +import zipfile +from difflib import get_close_matches OPT = "-Oz" +BASE_PATH = os.path.abspath(os.path.dirname(__file__)) -def update_fixture(project_name, wasm): - fixture_name = ( - re.sub(r"_([a-z])", lambda m: m.group(1).upper(), project_name) + "WasmHex" - ) +def pascal_case(name): + return "".join(word[:1].upper() + word[1:] for word in re.split(r"[_\W]+", name)) + + +def normalize_name(name): + name = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", name) + return re.sub(r"[^a-z0-9]", "", name.lower()) + + +def fixture_key(name): + name = normalize_name(name).removeprefix("k") + return name.removesuffix("wasmhex").removesuffix("hex") + + +def declared_fixtures(): + h_path = os.path.join(BASE_PATH, "fixtures.h") + with open(h_path, "r", encoding="utf8") as f: + return re.findall( + r"extern std::string const ([A-Za-z_][A-Za-z0-9_]*);", f.read() + ) + + +def find_fixture_name(project_name, suffix): + default = re.sub(r"_([a-z])", lambda m: m.group(1).upper(), project_name) + suffix + k_default = f"k{pascal_case(project_name)}{suffix}" + declarations = declared_fixtures() + normalized = {normalize_name(name): name for name in declarations} + fixture_keys = {fixture_key(name): name for name in declarations} + + for name in (default, k_default): + if normalize_name(name) in normalized: + return normalized[normalize_name(name)] + + project_key = normalize_name(project_name) + matches = [ + name + for key, name in fixture_keys.items() + if key.endswith(project_key) + or key.startswith(project_key) + or project_key.endswith(key) + or project_key.startswith(key) + ] + if len(matches) == 1: + return matches[0] + + close = get_close_matches(project_key, fixture_keys.keys(), n=1, cutoff=0.82) + if close: + return fixture_keys[close[0]] + + return k_default + + +def fixture_cpp_path(fixture_name): + pattern = rf"extern std::string const {fixture_name} =" + for file_name in os.listdir(BASE_PATH): + if not file_name.endswith(".cpp"): + continue + cpp_path = os.path.join(BASE_PATH, file_name) + with open(cpp_path, "r", encoding="utf8") as f: + if re.search(pattern, f.read()): + return cpp_path + return os.path.join(BASE_PATH, "fixtures.cpp") + + +def update_fixture(project_name, wasm, suffix="WasmHex"): + fixture_name = find_fixture_name(project_name, suffix) print(f"Updating fixture: {fixture_name}") - cpp_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "fixtures.cpp")) - h_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "fixtures.h")) + cpp_path = fixture_cpp_path(fixture_name) + h_path = os.path.join(BASE_PATH, "fixtures.h") with open(cpp_path, "r", encoding="utf8") as f: cpp_content = f.read() @@ -30,7 +97,7 @@ def update_fixture(project_name, wasm): with open(h_path, "r", encoding="utf8") as f: h_content = f.read() updated_h_content = ( - h_content.rstrip() + f"\n\n extern std::string const {fixture_name};\n" + h_content.rstrip() + f"\n\nextern std::string const {fixture_name};\n" ) with open(h_path, "w", encoding="utf8") as f: f.write(updated_h_content) @@ -43,83 +110,178 @@ def update_fixture(project_name, wasm): f.write(updated_cpp_content) +def read_wasm_hex(path): + with open(path, "rb") as f: + return f.read().hex() + + def process_rust(project_name): - project_path = os.path.abspath( - os.path.join(os.path.dirname(__file__), project_name) - ) - wasm_location = f"target/wasm32v1-none/release/{project_name}.wasm" - build_cmd = ( - f"(cd {project_path} " - f"&& cargo build --target wasm32v1-none --release " - f"&& wasm-opt {wasm_location} {OPT} -o {wasm_location}" - ")" + project_path = os.path.join(BASE_PATH, project_name) + wasm_location = os.path.join( + project_path, "target", "wasm32v1-none", "release", f"{project_name}.wasm" ) try: - subprocess.run(build_cmd, shell=True, check=True) + subprocess.run( + ["cargo", "build", "--target", "wasm32v1-none", "--release"], + cwd=project_path, + check=True, + ) + subprocess.run( + ["wasm-opt", wasm_location, OPT, "-o", wasm_location], check=True + ) print(f"WASM file for {project_name} has been built and optimized.") + except FileNotFoundError as e: + print(f"exec error: {e.filename} is required to build Rust fixtures") + sys.exit(1) except subprocess.CalledProcessError as e: print(f"exec error: {e}") sys.exit(1) - src_path = os.path.abspath( - os.path.join( - os.path.dirname(__file__), - f"{project_name}/target/wasm32v1-none/release/{project_name}.wasm", - ) - ) - with open(src_path, "rb") as f: - data = f.read() - wasm = data.hex() - update_fixture(project_name, wasm) + update_fixture(project_name, read_wasm_hex(wasm_location)) def process_c(project_name): - project_path = os.path.abspath( - os.path.join(os.path.dirname(__file__), f"{project_name}.c") - ) - wasm_path = os.path.abspath( - os.path.join(os.path.dirname(__file__), f"{project_name}.wasm") - ) - build_cmd = ( - f"$CC --sysroot=$SYSROOT " - f"-O3 -ffast-math --target=wasm32 -fno-exceptions -fno-threadsafe-statics -fvisibility=default -Wl,--export-all -Wl,--no-entry -Wl,--allow-undefined -DNDEBUG --no-standard-libraries -fno-builtin-memset " - f"-o {wasm_path} {project_path}" - f"&& wasm-opt {wasm_path} {OPT} -o {wasm_path}" - ) + project_path = os.path.join(BASE_PATH, f"{project_name}.c") + wasm_path = os.path.join(BASE_PATH, f"{project_name}.wasm") + cc = os.environ.get("CC") + sysroot = os.environ.get("SYSROOT") + if not cc or not sysroot: + print("exec error: CC and SYSROOT are required to build C fixtures") + sys.exit(1) + + build_cmd = [ + *shlex.split(cc), + f"--sysroot={sysroot}", + "-O3", + "-ffast-math", + "--target=wasm32", + "-fno-exceptions", + "-fno-threadsafe-statics", + "-fvisibility=default", + "-Wl,--export-all", + "-Wl,--no-entry", + "-Wl,--allow-undefined", + "-DNDEBUG", + "--no-standard-libraries", + "-fno-builtin-memset", + "-o", + wasm_path, + project_path, + ] try: - subprocess.run(build_cmd, shell=True, check=True) + subprocess.run(build_cmd, check=True) + subprocess.run(["wasm-opt", wasm_path, OPT, "-o", wasm_path], check=True) print( f"WASM file for {project_name} has been built with WASI support using clang." ) + except FileNotFoundError as e: + print(f"exec error: {e.filename} is required to build C fixtures") + sys.exit(1) except subprocess.CalledProcessError as e: print(f"exec error: {e}") sys.exit(1) - with open(wasm_path, "rb") as f: - data = f.read() - wasm = data.hex() - update_fixture(project_name, wasm) + update_fixture(project_name, read_wasm_hex(wasm_path)) + + +def wat_to_wasm(wat_path, wasm_path): + build_cmd = ["wat2wasm", 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.") + except FileNotFoundError: + print("exec error: wat2wasm is required to build WAT fixtures") + sys.exit(1) + except subprocess.CalledProcessError as e: + print(f"exec error: {e}") + sys.exit(1) + + +def process_wat_file(wat_path): + project_name = os.path.splitext(os.path.basename(wat_path))[0] + with open(wat_path, "r", encoding="utf8") as f: + if "(module" not in f.read(): + print(f"Skipping WAT fixture without a module: {project_name}") + return + + with tempfile.TemporaryDirectory() as tmpdir: + wasm_path = os.path.join(tmpdir, f"{project_name}.wasm") + wat_to_wasm(wat_path, wasm_path) + update_fixture(project_name, read_wasm_hex(wasm_path), "Hex") + + +def process_wat_zip(zip_path): + project_name = os.path.splitext(os.path.basename(zip_path))[0] + with tempfile.TemporaryDirectory() as tmpdir: + with zipfile.ZipFile(zip_path) as archive: + wat_names = [name for name in archive.namelist() if name.endswith(".wat")] + if len(wat_names) != 1: + print(f"exec error: expected one .wat file in {zip_path}") + sys.exit(1) + archive.extract(wat_names[0], tmpdir) + + wasm_path = os.path.join(tmpdir, f"{project_name}.wasm") + wat_to_wasm(os.path.join(tmpdir, wat_names[0]), wasm_path) + update_fixture(project_name, read_wasm_hex(wasm_path), "Hex") + + +def process_wat(project_name): + candidates = [ + os.path.join(BASE_PATH, f"{project_name}.wat"), + os.path.join(BASE_PATH, "wat", f"{project_name}.wat"), + os.path.join(BASE_PATH, "wat", f"{project_name}.zip"), + ] + for path in candidates: + if os.path.isfile(path): + if path.endswith(".zip"): + process_wat_zip(path) + else: + process_wat_file(path) + return + + print(f"exec error: fixture {project_name} not found") + sys.exit(1) if __name__ == "__main__": if len(sys.argv) > 2: print("Usage: python copyFixtures.py []") sys.exit(1) + if len(sys.argv) == 2: - if os.path.isdir(os.path.join(os.path.dirname(__file__), sys.argv[1])): - process_rust(sys.argv[1]) + project_name = os.path.splitext(os.path.basename(sys.argv[1]))[0] + if os.path.isfile(os.path.join(BASE_PATH, project_name, "Cargo.toml")): + process_rust(project_name) + elif os.path.isfile(os.path.join(BASE_PATH, f"{project_name}.c")): + process_c(project_name) else: - process_c(sys.argv[1]) + process_wat(project_name) print("Fixture has been processed.") else: dirs = [ d - for d in os.listdir(os.path.dirname(__file__)) - if os.path.isdir(os.path.join(os.path.dirname(__file__), d)) + for d in os.listdir(BASE_PATH) + if os.path.isfile(os.path.join(BASE_PATH, d, "Cargo.toml")) ] - c_files = [f for f in os.listdir(os.path.dirname(__file__)) if f.endswith(".c")] - for d in dirs: + c_files = [f for f in os.listdir(BASE_PATH) if f.endswith(".c")] + wat_files = [f for f in os.listdir(BASE_PATH) if f.endswith(".wat")] + wat_path = os.path.join(BASE_PATH, "wat") + wat_fixture_files = [ + f + for f in (os.listdir(wat_path) if os.path.isdir(wat_path) else []) + if f.endswith((".wat", ".zip")) + ] + + for d in sorted(dirs): process_rust(d) - for c in c_files: + for c in sorted(c_files): process_c(c[:-2]) + for wat in sorted(wat_files): + process_wat_file(os.path.join(BASE_PATH, wat)) + for wat_fixture in sorted(wat_fixture_files): + path = os.path.join(wat_path, wat_fixture) + if wat_fixture.endswith(".zip"): + process_wat_zip(path) + else: + process_wat_file(path) print("All fixtures have been processed.") diff --git a/src/test/app/wasm_fixtures/fixtures.cpp b/src/test/app/wasm_fixtures/fixtures.cpp index a6e84dd06b..8e67c4245c 100644 --- a/src/test/app/wasm_fixtures/fixtures.cpp +++ b/src/test/app/wasm_fixtures/fixtures.cpp @@ -5,827 +5,638 @@ #include extern std::string const kLedgerSqnWasmHex = - "0061736d01000000010e0360027f7f017f6000006000017f02160103656e760e6765745f6c65646765725f73716e00" - "0003030201020503010002063f0a7f01418088040b7f004180080b7f004180080b7f004180080b7f00418088040b7f" - "004180080b7f00418088040b7f00418080080b7f0041000b7f0041010b07aa010c066d656d6f72790200115f5f7761" - "736d5f63616c6c5f63746f727300010666696e69736800020c5f5f64736f5f68616e646c6503010a5f5f646174615f" - "656e6403020b5f5f737461636b5f6c6f7703030c5f5f737461636b5f6869676803040d5f5f676c6f62616c5f626173" - "6503050b5f5f686561705f6261736503060a5f5f686561705f656e6403070d5f5f6d656d6f72795f6261736503080c" - "5f5f7461626c655f6261736503090a3d0202000b3801037f230041106b220024002000410c6a410410002101200028" - "020c2102200041106a2400200141054100200241054f1b20014100481b0b007f0970726f647563657273010c70726f" - "6365737365642d62790105636c616e675f31392e312e352d776173692d73646b202868747470733a2f2f6769746875" - "622e636f6d2f6c6c766d2f6c6c766d2d70726f6a656374206162346235613264623538323935386166316565333038" - "61373930636664623432626432343732302900490f7461726765745f6665617475726573042b0f6d757461626c652d" - "676c6f62616c732b087369676e2d6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c7565"; + "0061736d01000000010e0360027f7f017f6000006000017f02120103656e760a6c6467725f696e6465780000030302" + "01020503010002062b077f01418088040b7f004180080b7f004180080b7f004180080b7f00418088040b7f0041000b" + "7f0041010b07800109066d656d6f72790200115f5f7761736d5f63616c6c5f63746f727300010666696e6973680002" + "0c5f5f64736f5f68616e646c6503010a5f5f646174615f656e6403020d5f5f676c6f62616c5f6261736503030b5f5f" + "686561705f6261736503040d5f5f6d656d6f72795f6261736503050c5f5f7461626c655f6261736503060a3d020200" + "0b3801037f230041106b220024002000410c6a410410002101200028020c2102200041106a24002001410541002002" + "41054f1b20014100481b0b002f0970726f647563657273010c70726f6365737365642d6279010e486f6d6562726577" + "20636c616e670631342e302e36"; extern std::string const kAllHostFunctionsWasmHex = "0061736d0100000001540c60027f7f017f60037f7f7f017f60047f7f7f7f017f60017f017f60067f7f7f7f7f7f017f" "60037f7f7f0060057f7f7f7f7f017f60037f7f7e017f60087f7f7f7f7f7f7f7f017f60017f0060027f7f006000017f" - "02ae061a08686f73745f6c69620c6765745f74785f6669656c64000108686f73745f6c69620974726163655f6e756d" - "000708686f73745f6c6962057472616365000608686f73745f6c69620e6765745f6c65646765725f73716e00000868" - "6f73745f6c6962166765745f706172656e745f6c65646765725f74696d65000008686f73745f6c6962166765745f70" - "6172656e745f6c65646765725f68617368000008686f73745f6c6962136765745f74785f6e65737465645f6669656c" - "64000208686f73745f6c6962106765745f74785f61727261795f6c656e000308686f73745f6c6962176765745f7478" - "5f6e65737465645f61727261795f6c656e000008686f73745f6c69621c6765745f63757272656e745f6c6564676572" - "5f6f626a5f6669656c64000108686f73745f6c6962236765745f63757272656e745f6c65646765725f6f626a5f6e65" - "737465645f6669656c64000208686f73745f6c6962206765745f63757272656e745f6c65646765725f6f626a5f6172" - "7261795f6c656e000308686f73745f6c6962276765745f63757272656e745f6c65646765725f6f626a5f6e65737465" - "645f61727261795f6c656e000008686f73745f6c69621063616368655f6c65646765725f6f626a000108686f73745f" - "6c69621163726564656e7469616c5f6b65796c6574000808686f73745f6c69620d657363726f775f6b65796c657400" - "0408686f73745f6c69620d6f7261636c655f6b65796c6574000408686f73745f6c696213636f6d707574655f736861" - "3531325f68616c66000208686f73745f6c6962076765745f6e6674000408686f73745f6c69620b7570646174655f64" - "617461000008686f73745f6c6962146765745f6c65646765725f6f626a5f6669656c64000208686f73745f6c69621b" - "6765745f6c65646765725f6f626a5f6e65737465645f6669656c64000608686f73745f6c6962186765745f6c656467" - "65725f6f626a5f61727261795f6c656e000008686f73745f6c69621f6765745f6c65646765725f6f626a5f6e657374" - "65645f61727261795f6c656e000108686f73745f6c69620e6163636f756e745f6b65796c6574000208686f73745f6c" - "69620d74726163655f6163636f756e740002030c0b090a05050b05000101030005030100110619037f01418080c000" - "0b7f0041af99c0000b7f0041b099c0000b072e04066d656d6f727902000666696e697368001e0a5f5f646174615f65" - "6e6403010b5f5f686561705f6261736503020a911e0b990101027f230041306b220124002000027f41818020200141" - "1c6a4114100022024114470440417f20022002417f4e1b210241010c010b200020012f001c3b0001200041036a2001" - "411e6a2d00003a0000200120012900233703082001200141286a29000037000d200128001f21022000410d6a200129" - "000d3700002000200129030837020841000b3a000020002002360204200141306a24000b460020012d000041014604" - "40418080c000410b20013402041001000b20002001290001370000200041106a200141116a28000036000020004108" - "6a200141096a2900003700000b1900200241094f0440000b20002002360204200020013602000b1900200241214f04" - "40000b20002002360204200020013602000ba91b01097f230041b0036b22002400418b80c000411b41014100410010" - "021a41a680c000411941014100410010021a41e780c000412b41014100410010021a20004100360270024002400240" - "02400240024002400240200041f0006a220741041003220141004a0440419281c00041172000280270220141187420" - "014180fe03714108747220014108764180fe037120014118767272ad10011a200041003602900120004190016a2203" - "41041004220141004c0d0141a981c0004113200028029001220141187420014180fe03714108747220014108764180" - "fe037120014118767272ad10011a200041c8016a22024200370300200041c0016a22054200370300200041b8016a22" - "044200370300200042003703b001200041b0016a22064120100522014120470d0241bc81c000411320064120410110" - "021a41cf81c000412041014100410010021a41dc82c000412e41014100410010021a200041a0016a41003602002000" - "4198016a420037030020004200370390014181802020034114100022014114470d03418a83c00041142003101f2000" - "420037034841888018200041c8006a22034108100022014108470d04419e83c0004117420810011a41b583c0004128" - "20034108410110021a2000410036023041848008200041306a22034104100022014104470d0541dd83c00041152003" - "4104410110021a200041f4006a410036000020004100360071200041013a0070200242003703002005420037030020" - "044200370300200042003703b001024020074108200641201006220141004e044041f283c00041142001ad10011a20" - "0041286a20062001101d418684c000410d2000280228200028022c410110021a0c010b419384c00041292001ac1001" - "1a0b41bc84c00041154183803c1007ac10011a41d184c00041134189803c1007ac10011a0240200041f0006a410810" - "08220141004e044041e484c00041142001ad10011a0c010b41f884c000412d2001ac10011a0b41a585c00041234101" - "4100410010021a41de86c000413341014100410010021a2000420037034841828018200041c8006a22014108100922" - "0341004c0d0620034108460440419187c000412b420810011a41bc87c000412f20014108410110021a0c080b41eb87" - "c000412f2003ad10011a200041206a200041c8006a2003101c419a88c000411720002802202000280224410110021a" - "0c070b41bf82c000411d2001ac10011a419b7f21020c070b419a82c00041252001ac10011a419a7f21020c060b41ef" - "81c000412b2001ac10011a41997f21020c050b41b486c000412a2001ac10011a41b77e21020c040b41f385c00041c1" - "002001ac10011a41b67e21020c030b41c885c000412b2001ac10011a41b57e21020c020b41b188c00041c5002003ac" - "10011a0b200041a0016a410036020020004198016a4200370300200042003703900102404181802020004190016a22" - "0341141009220141004a044041f688c000411e2003101f0c010b419489c00041332001ac10011a0b200041f4006a41" - "0036000020004100360071200041013a0070200041c8016a4200370300200041c0016a4200370300200041b8016a42" - "00370300200042003703b0010240200041f0006a4108200041b0016a22014120100a220341004e044041c789c00041" - "1c2003ad10011a200041186a20012003101d41e389c00041152000280218200028021c410110021a0c010b41f889c0" - "0041392003ac10011a0b41b18ac00041244183803c100bac10011a0240200041f0006a4108100c220141004e044041" - "d58ac000411c2001ad10011a0c010b41f18ac000413d2001ac10011a0b41ae8bc000412841014100410010021a41d6" - "8bc000412f41014100410010021a200041b0016a2203101a200041f0006a22012003101b200041a8016a4200370300" - "200041a0016a420037030020004198016a420037030020004200370390010240024002400240024020012000419001" - "6a2203102022014120460440200341204100100d220441004a044041858cc00041232004ad10011a20004200370330" - "2004200041306a220141081021220341004c0d022003410846044041a88cc000412a420810011a41d28cc000412e20" - "014108410110021a0c060b41808dc000412e2003ad10011a200041106a200041306a2003101c41ae8dc00041162000" - "2802102000280214410110021a0c050b41e68fc000413c2004ac10011a200041c8016a4200370300200041c0016a42" - "00370300200041b8016a4200370300200042003703b0014101200041b0016a4120102122014100480d020c030b41ba" - "92c000412e2001ac10011a41ef7c21020c050b41c48dc000412b2003ac10011a0c020b41a290c00041c1002001ac10" - "011a0b200041cc006a410036000020004100360049200041013a00484101200041c8006a200041b0016a1022220141" - "0048044041e390c00041352001ac10011a0b4101102322014100480440419891c00041322001ac10011a0b41012000" - "41c8006a10242201410048044041ca91c00041392001ac10011a0b418392c000413741014100410010021a0c010b20" - "0041cc006a410036000020004100360049200041013a0048200041c8016a4200370300200041c0016a420037030020" - "0041b8016a4200370300200042003703b00102402004200041c8006a200041b0016a22011022220341004e044041ef" - "8dc000411b2003ad10011a200041086a20012003101d418a8ec00041142000280208200028020c410110021a0c010b" - "419e8ec00041312003ac10011a0b41cf8ec000412320041023ac10011a02402004200041c8006a1024220141004e04" - "4041f28ec000411b2001ad10011a0c010b418d8fc00041352001ac10011a0b41c28fc000412441014100410010021a" - "0b41e892c000412f41014100410010021a200041b0016a2201101a200041306a22042001101b200041e0006a420037" - "0300200041d8006a4200370300200041d0006a420037030020004200370348024002400240024002402004200041c8" - "006a2203102022014120460440419793c000410f20034120410110021a20004188016a420037030020004180016a42" - "00370300200041f8006a4200370300200042003703700240200441142004411441a693c0004109200041f0006a2201" - "4120100e220341004a0440200020012003101d41ae93c000411220002802002000280204410110021a0c010b41c093" - "c000413c2003ac10011a0b200041a8016a22064200370300200041a0016a2202420037030020004198016a22054200" - "370300200042003703900120004180808cc07e360268200041306a22034114200041e8006a410420004190016a2208" - "4120100f22014120470d0141fc93c000410e20084120410110021a200041c8016a4200370300200041c0016a420037" - "0300200041b8016a4200370300200042003703b001200041808080d00236026c20034114200041ec006a4104200041" - "b0016a22044120101022014120470d02418a94c000410e20044120410110021a419894c00041244101410041001002" - "1a419195c000412541014100410010021a20004188016a420037030020004180016a4200370300200041f8006a4200" - "3703002000420037037041b695c0004117200041f0006a22034120101122014120470d0341cd95c000410b41b695c0" - "004117410110021a41d895c000411120034120410110021a2004101a200041c8006a22072004101b20064200370300" - "2002420037030020054200370300200042003703900102404100200422026b410371220320026a220520024d0d0020" - "030440200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d00034020" - "0241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a000020" - "0241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b20054180" - "0220036b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b02402002200141" - "0371220120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b2001" - "41016b4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000" - "200241046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a2202" - "2003470d000b0b0240200741142008412020044180021012220141004a044041e995c00041102001ad10011a200141" - "81024f0d0641f995c000410920042001410110021a0c010b418296c000412e2001ac10011a0b41b096c000411241c2" - "96c00041074101100222014100480d0541c996c000411d2001ad10011a41e696c0004111422a1001410048044041ad" - "97c000411a42a47b10011a41a47b21020c070b41f796c000411c420010011a41012102419397c000411a4101410041" - "0010021a41ff97c000412941014100410010021a41a898c000412810132201412846044041d098c000412741a898c0" - "004128410110021a41f798c000411e41014100410010021a41bf80c000412841014100410010021a0c070b419599c0" - "00411a2001ac10011a41c37a21020c060b41f494c000411d2001ac10011a418b7c21020c050b41d894c000411c2001" - "ac10011a41897c21020c040b41bc94c000411c2001ac10011a41887c21020c030b41dd97c00041222001ac10011a41" - "a77b21020c020b000b41c797c00041162001ac10011a41a57b21020b200041b0036a240020020b0d00200020012002" - "411410191a0b0c00200041142001412010180b0e002000418280182001200210140b0e002000200141082002412010" - "150b0a0020004183803c10160b0a0020002001410810170b0bb9190100418080c0000baf196572726f725f636f6465" - "3d3d3d3d20484f53542046554e4354494f4e532054455354203d3d3d54657374696e6720323620686f73742066756e" - "6374696f6e73535543434553533a20416c6c20686f73742066756e6374696f6e20746573747320706173736564212d" - "2d2d2043617465676f727920313a204c6564676572204865616465722046756e6374696f6e73202d2d2d4c65646765" - "722073657175656e6365206e756d6265723a506172656e74206c65646765722074696d653a506172656e74206c6564" - "67657220686173683a535543434553533a204c6564676572206865616465722066756e6374696f6e734552524f523a" - "206765745f706172656e745f6c65646765725f686173682077726f6e67206c656e6774683a4552524f523a20676574" - "5f706172656e745f6c65646765725f74696d65206661696c65643a4552524f523a206765745f6c65646765725f7371" - "6e206661696c65643a2d2d2d2043617465676f727920323a205472616e73616374696f6e20446174612046756e6374" - "696f6e73202d2d2d5472616e73616374696f6e204163636f756e743a5472616e73616374696f6e20466565206c656e" - "6774683a5472616e73616374696f6e20466565202873657269616c697a65642058525020616d6f756e74293a547261" - "6e73616374696f6e2053657175656e63653a4e6573746564206669656c64206c656e6774683a4e6573746564206669" - "656c643a494e464f3a206765745f74785f6e65737465645f6669656c64206e6f74206170706c696361626c653a5369" - "676e657273206172726179206c656e6774683a4d656d6f73206172726179206c656e6774683a4e6573746564206172" - "726179206c656e6774683a494e464f3a206765745f74785f6e65737465645f61727261795f6c656e206e6f74206170" - "706c696361626c653a535543434553533a205472616e73616374696f6e20646174612066756e6374696f6e73455252" - "4f523a206765745f74785f6669656c642853657175656e6365292077726f6e67206c656e6774683a4552524f523a20" - "6765745f74785f6669656c6428466565292077726f6e67206c656e6774682028657870656374656420382062797465" - "7320666f7220585250293a4552524f523a206765745f74785f6669656c64284163636f756e74292077726f6e67206c" - "656e6774683a2d2d2d2043617465676f727920333a2043757272656e74204c6564676572204f626a6563742046756e" - "6374696f6e73202d2d2d43757272656e74206f626a6563742062616c616e6365206c656e677468202858525020616d" - "6f756e74293a43757272656e74206f626a6563742062616c616e6365202873657269616c697a65642058525020616d" - "6f756e74293a43757272656e74206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d" - "6f756e74293a43757272656e74206f626a6563742062616c616e63653a494e464f3a206765745f63757272656e745f" - "6c65646765725f6f626a5f6669656c642842616c616e636529206661696c656420286d617920626520657870656374" - "6564293a43757272656e74206c6564676572206f626a656374206163636f756e743a494e464f3a206765745f637572" - "72656e745f6c65646765725f6f626a5f6669656c64284163636f756e7429206661696c65643a43757272656e74206e" - "6573746564206669656c64206c656e6774683a43757272656e74206e6573746564206669656c643a494e464f3a2067" - "65745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c64206e6f74206170706c69636162" - "6c653a43757272656e74206f626a656374205369676e657273206172726179206c656e6774683a43757272656e7420" - "6e6573746564206172726179206c656e6774683a494e464f3a206765745f63757272656e745f6c65646765725f6f62" - "6a5f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a2043757272" - "656e74206c6564676572206f626a6563742066756e6374696f6e732d2d2d2043617465676f727920343a20416e7920" - "4c6564676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c792063616368656420" - "6f626a65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e67746820285852" - "5020616d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a656420585250" - "20616d6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020" - "616d6f756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206765745f6c65646765725f" - "6f626a5f6669656c642842616c616e636529206661696c65643a436163686564206e6573746564206669656c64206c" - "656e6774683a436163686564206e6573746564206669656c643a494e464f3a206765745f6c65646765725f6f626a5f" - "6e65737465645f6669656c64206e6f74206170706c696361626c653a436163686564206f626a656374205369676e65" - "7273206172726179206c656e6774683a436163686564206e6573746564206172726179206c656e6774683a494e464f" - "3a206765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c" - "653a535543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e73494e464f3a20636163" - "68655f6c65646765725f6f626a206661696c6564202865787065637465642077697468207465737420666978747572" - "6573293a494e464f3a206765745f6c65646765725f6f626a5f6669656c64206661696c656420617320657870656374" - "656420286e6f20636163686564206f626a656374293a494e464f3a206765745f6c65646765725f6f626a5f6e657374" - "65645f6669656c64206661696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f62" - "6a5f61727261795f6c656e206661696c65642061732065787065637465643a494e464f3a206765745f6c6564676572" - "5f6f626a5f6e65737465645f61727261795f6c656e206661696c65642061732065787065637465643a535543434553" - "533a20416e79206c6564676572206f626a6563742066756e6374696f6e732028696e74657266616365207465737465" - "64294552524f523a206163636f756e745f6b65796c6574206661696c656420666f722063616368696e672074657374" - "3a2d2d2d2043617465676f727920353a204b65796c65742047656e65726174696f6e2046756e6374696f6e73202d2d" - "2d4163636f756e74206b65796c65743a546573745479706543726564656e7469616c206b65796c65743a494e464f3a" - "2063726564656e7469616c5f6b65796c6574206661696c656420286578706563746564202d20696e74657266616365" - "206973737565293a457363726f77206b65796c65743a4f7261636c65206b65796c65743a535543434553533a204b65" - "796c65742067656e65726174696f6e2066756e6374696f6e734552524f523a206f7261636c655f6b65796c65742066" - "61696c65643a4552524f523a20657363726f775f6b65796c6574206661696c65643a4552524f523a206163636f756e" - "745f6b65796c6574206661696c65643a2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f" - "6e73202d2d2d48656c6c6f2c205852504c205741534d20776f726c6421496e70757420646174613a53484135313220" - "68616c6620686173683a4e46542064617461206c656e6774683a4e465420646174613a494e464f3a206765745f6e66" - "74206661696c656420286578706563746564202d206e6f2073756368204e4654293a54657374207472616365206d65" - "73736167657061796c6f616454726163652066756e6374696f6e206279746573207772697474656e3a54657374206e" - "756d62657220747261636554726163655f6e756d2066756e6374696f6e20737563636565646564535543434553533a" - "205574696c6974792066756e6374696f6e734552524f523a2074726163655f6e756d2829206661696c65643a455252" - "4f523a2074726163652829206661696c65643a4552524f523a20636f6d707574655f7368613531325f68616c662066" - "61696c65643a2d2d2d2043617465676f727920373a2044617461205570646174652046756e6374696f6e73202d2d2d" - "55706461746564206c656467657220656e74727920646174612066726f6d205741534d207465737453756363657373" - "66756c6c792075706461746564206c656467657220656e74727920776974683a535543434553533a20446174612075" - "70646174652066756e6374696f6e734552524f523a207570646174655f64617461206661696c65643a004d0970726f" - "64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e38" - "392e30202832393438333838336520323032352d30382d303429002c0f7461726765745f6665617475726573022b0f" - "6d757461626c652d676c6f62616c732b087369676e2d657874"; + "02dc041a08686f73745f6c69620874785f6669656c64000108686f73745f6c69620974726163655f6e756d00070868" + "6f73745f6c6962057472616365000608686f73745f6c69620a6c6467725f696e646578000008686f73745f6c696210" + "706172656e745f6c6467725f74696d65000008686f73745f6c696210706172656e745f6c6467725f68617368000008" + "686f73745f6c69620874785f696e6e6572000208686f73745f6c69620a74785f6172725f6c656e000308686f73745f" + "6c69621074785f696e6e65725f6172725f6c656e000008686f73745f6c69620d686f6d655f6c655f6669656c640001" + "08686f73745f6c69620d686f6d655f6c655f696e6e6572000208686f73745f6c69620f686f6d655f6c655f6172725f" + "6c656e000308686f73745f6c696215686f6d655f6c655f696e6e65725f6172725f6c656e000008686f73745f6c6962" + "0863616368655f6c65000108686f73745f6c69620d63726564656e7469616c5f6964000808686f73745f6c69620965" + "7363726f775f6964000408686f73745f6c6962096f7261636c655f6964000408686f73745f6c69620b736861353132" + "5f68616c66000208686f73745f6c6962076e66745f757269000408686f73745f6c6962087365745f64617461000008" + "686f73745f6c6962086c655f6669656c64000208686f73745f6c6962086c655f696e6e6572000608686f73745f6c69" + "620a6c655f6172725f6c656e000008686f73745f6c6962106c655f696e6e65725f6172725f6c656e000108686f7374" + "5f6c69620e6163636f756e74726f6f745f6964000208686f73745f6c69620a74726163655f616363740002030c0b09" + "0a05050b05000101030005030100110619037f01418080c0000b7f0041af99c0000b7f0041b099c0000b072e04066d" + "656d6f727902000666696e697368001e0a5f5f646174615f656e6403010b5f5f686561705f6261736503020ac61d0b" + "990101027f230041306b220124002000027f418180202001411c6a4114100022024114470440417f20022002417f4e" + "1b210241010c010b200020012f001c3b0001200041036a2001411e6a2d00003a000020012001290023370308200120" + "0141286a29000037000d200128001f21022000410d6a200129000d3700002000200129030837020841000b3a000020" + "002002360204200141306a24000b460020012d00004101460440418080c000410b20013402041001000b2000200129" + "0001370000200041106a200141116a280000360000200041086a200141096a2900003700000b1900200241094f0440" + "000b20002002360204200020013602000b1900200241214f0440000b20002002360204200020013602000bde1a0109" + "7f230041b0036b22002400418b80c000411b41014100410010021a41a680c000411941014100410010021a41e780c0" + "00412b41014100410010021a2000410036027002400240024002400240024002400240200041f0006a220741041003" + "220141004a0440419281c00041172000280270220141187420014180fe03714108747220014108764180fe03712001" + "4118767272ad10011a200041003602900120004190016a220341041004220141004c0d0141a981c000411320002802" + "9001220141187420014180fe03714108747220014108764180fe037120014118767272ad10011a200041c8016a2202" + "4200370300200041c0016a22054200370300200041b8016a22044200370300200042003703b001200041b0016a2206" + "4120100522014120470d0241bc81c000411320064120410110021a41cf81c000412041014100410010021a41dc82c0" + "00412e41014100410010021a200041a0016a410036020020004198016a420037030020004200370390014181802020" + "034114100022014114470d03418a83c00041142003101f200042003703704188801820074108100022014108470d04" + "419e83c0004117420810011a41b583c000412820074108410110021a2000410036024841848008200041c8006a2203" + "4104100022014104470d0541dd83c000411520034104410110021a200041013b003420024200370300200542003703" + "0020044200370300200042003703b0010240200041346a4102200641201006220141004e044041f283c00041142001" + "ad10011a200041286a20062001101d418684c000410d2000280228200028022c410110021a0c010b419384c0004129" + "2001ac10011a0b41bc84c00041154183803c1007ac10011a41d184c00041134189803c1007ac10011a024020004134" + "6a41021008220141004e044041e484c00041142001ad10011a0c010b41f884c000412d2001ac10011a0b41a585c000" + "412341014100410010021a41de86c000413341014100410010021a2000420037037041828018200041f0006a220141" + "081009220341004c0d0620034108460440419187c000412b420810011a41bc87c000412f20014108410110021a0c08" + "0b41eb87c000412f2003ad10011a200041206a200041f0006a2003101c419a88c00041172000280220200028022441" + "0110021a0c070b41bf82c000411d2001ac10011a419b7f21020c070b419a82c00041252001ac10011a419a7f21020c" + "060b41ef81c000412b2001ac10011a41997f21020c050b41b486c000412a2001ac10011a41b77e21020c040b41f385" + "c00041c1002001ac10011a41b67e21020c030b41c885c000412b2001ac10011a41b57e21020c020b41b188c00041c5" + "002003ac10011a0b200041a0016a410036020020004198016a42003703002000420037039001024041818020200041" + "90016a220341141009220141004a044041f688c000411e2003101f0c010b419489c00041332001ac10011a0b200041" + "013b0048200041c8016a4200370300200041c0016a4200370300200041b8016a4200370300200042003703b0010240" + "200041c8006a4102200041b0016a22014120100a220341004e044041c789c000411c2003ad10011a200041186a2001" + "2003101d41e389c00041152000280218200028021c410110021a0c010b41f889c00041392003ac10011a0b41b18ac0" + "0041244183803c100bac10011a0240200041c8006a4102100c220141004e044041d58ac000411c2001ad10011a0c01" + "0b41f18ac000413d2001ac10011a0b41ae8bc000412841014100410010021a41d68bc000412f41014100410010021a" + "200041b0016a2203101a200041f0006a22012003101b200041a8016a4200370300200041a0016a4200370300200041" + "98016a4200370300200042003703900102400240024002400240200120004190016a22031020220141204604402003" + "41204100100d220441004a044041858cc00041232004ad10011a200042003703482004200041c8006a220141081021" + "220341004c0d022003410846044041a88cc000412a420810011a41d28cc000412e20014108410110021a0c060b4180" + "8dc000412e2003ad10011a200041106a200041c8006a2003101c41ae8dc00041162000280210200028021441011002" + "1a0c050b41e68fc000413c2004ac10011a200041c8016a4200370300200041c0016a4200370300200041b8016a4200" + "370300200042003703b0014101200041b0016a4120102122014100480d020c030b41ba92c000412e2001ac10011a41" + "ef7c21020c050b41c48dc000412b2003ac10011a0c020b41a290c00041c1002001ac10011a0b200041013b00484101" + "200041c8006a200041b0016a10222201410048044041e390c00041352001ac10011a0b410110232201410048044041" + "9891c00041322001ac10011a0b4101200041c8006a10242201410048044041ca91c00041392001ac10011a0b418392" + "c000413741014100410010021a0c010b200041013b0034200041c8016a4200370300200041c0016a42003703002000" + "41b8016a4200370300200042003703b00102402004200041346a200041b0016a22011022220341004e044041ef8dc0" + "00411b2003ad10011a200041086a20012003101d418a8ec00041142000280208200028020c410110021a0c010b419e" + "8ec00041312003ac10011a0b41cf8ec000412320041023ac10011a02402004200041346a1024220141004e044041f2" + "8ec000411b2001ad10011a0c010b418d8fc00041352001ac10011a0b41c28fc000412441014100410010021a0b41e8" + "92c000412f41014100410010021a200041b0016a2201101a200041346a22042001101b200041e0006a420037030020" + "0041d8006a4200370300200041d0006a420037030020004200370348024002400240024002402004200041c8006a22" + "03102022014120460440419793c000410f20034120410110021a20004188016a420037030020004180016a42003703" + "00200041f8006a4200370300200042003703700240200441142004411441a693c0004109200041f0006a2201412010" + "0e220341004a0440200020012003101d41ae93c000411220002802002000280204410110021a0c010b41c093c00041" + "3c2003ac10011a0b200041a8016a22064200370300200041a0016a2202420037030020004198016a22054200370300" + "200042003703900120004180808cc07e360268200041346a22034114200041e8006a410420004190016a2208412010" + "0f22014120470d0141fc93c000410e20084120410110021a200041c8016a4200370300200041c0016a420037030020" + "0041b8016a4200370300200042003703b001200041808080d00236026c20034114200041ec006a4104200041b0016a" + "22044120101022014120470d02418a94c000410e20044120410110021a419894c000412441014100410010021a4191" + "95c000412541014100410010021a20004188016a420037030020004180016a4200370300200041f8006a4200370300" + "2000420037037041b695c0004117200041f0006a22034120101122014120470d0341cd95c000410b41b695c0004117" + "410110021a41d895c000411120034120410110021a2004101a200041c8006a22072004101b20064200370300200242" + "0037030020054200370300200042003703900102404100200422026b410371220320026a220520024d0d0020030440" + "200321010340200241003a0000200241016a2102200141016b22010d000b0b200341016b4107490d00034020024100" + "3a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241046a41003a000020024103" + "6a41003a0000200241026a41003a0000200241016a41003a0000200241086a22022005470d000b0b20054180022003" + "6b2201417c716a220220054b0440034020054100360200200541046a22052002490d000b0b02402002200141037122" + "0120026a22034f0d002001220504400340200241003a0000200241016a2102200541016b22050d000b0b200141016b" + "4107490d000340200241003a0000200241076a41003a0000200241066a41003a0000200241056a41003a0000200241" + "046a41003a0000200241036a41003a0000200241026a41003a0000200241016a41003a0000200241086a2202200347" + "0d000b0b0240200741142008412020044180021012220141004a044041e995c00041102001ad10011a20014181024f" + "0d0641f995c000410920042001410110021a0c010b418296c000412e2001ac10011a0b41b096c000411241c296c000" + "41074101100222014100480d0541c996c000411d2001ad10011a41e696c0004111422a1001410048044041ad97c000" + "411a42a47b10011a41a47b21020c070b41f796c000411c420010011a41012102419397c000411a4101410041001002" + "1a41ff97c000412941014100410010021a41a898c000412810132201412846044041d098c000412741a898c0004128" + "410110021a41f798c000411e41014100410010021a41bf80c000412841014100410010021a0c070b419599c000411a" + "2001ac10011a41c37a21020c060b41f494c000411d2001ac10011a418b7c21020c050b41d894c000411c2001ac1001" + "1a41897c21020c040b41bc94c000411c2001ac10011a41887c21020c030b41dd97c00041222001ac10011a41a77b21" + "020c020b000b41c797c00041162001ac10011a41a57b21020b200041b0036a240020020b0d00200020012002411410" + "191a0b0c00200041142001412010180b0e002000418280182001200210140b0e002000200141022002412010150b0a" + "0020004183803c10160b0a0020002001410210170b0bb9190100418080c0000baf196572726f725f636f64653d3d3d" + "3d20484f53542046554e4354494f4e532054455354203d3d3d54657374696e6720323620686f73742066756e637469" + "6f6e73535543434553533a20416c6c20686f73742066756e6374696f6e20746573747320706173736564212d2d2d20" + "43617465676f727920313a204c6564676572204865616465722046756e6374696f6e73202d2d2d4c65646765722073" + "657175656e6365206e756d6265723a506172656e74206c65646765722074696d653a506172656e74206c6564676572" + "20686173683a535543434553533a204c6564676572206865616465722066756e6374696f6e734552524f523a206765" + "745f706172656e745f6c65646765725f686173682077726f6e67206c656e6774683a4552524f523a206765745f7061" + "72656e745f6c65646765725f74696d65206661696c65643a4552524f523a206765745f6c65646765725f73716e2066" + "61696c65643a2d2d2d2043617465676f727920323a205472616e73616374696f6e20446174612046756e6374696f6e" + "73202d2d2d5472616e73616374696f6e204163636f756e743a5472616e73616374696f6e20466565206c656e677468" + "3a5472616e73616374696f6e20466565202873657269616c697a65642058525020616d6f756e74293a5472616e7361" + "6374696f6e2053657175656e63653a4e6573746564206669656c64206c656e6774683a4e6573746564206669656c64" + "3a494e464f3a206765745f74785f6e65737465645f6669656c64206e6f74206170706c696361626c653a5369676e65" + "7273206172726179206c656e6774683a4d656d6f73206172726179206c656e6774683a4e6573746564206172726179" + "206c656e6774683a494e464f3a206765745f74785f6e65737465645f61727261795f6c656e206e6f74206170706c69" + "6361626c653a535543434553533a205472616e73616374696f6e20646174612066756e6374696f6e734552524f523a" + "206765745f74785f6669656c642853657175656e6365292077726f6e67206c656e6774683a4552524f523a20676574" + "5f74785f6669656c6428466565292077726f6e67206c656e6774682028657870656374656420382062797465732066" + "6f7220585250293a4552524f523a206765745f74785f6669656c64284163636f756e74292077726f6e67206c656e67" + "74683a2d2d2d2043617465676f727920333a2043757272656e74204c6564676572204f626a6563742046756e637469" + "6f6e73202d2d2d43757272656e74206f626a6563742062616c616e6365206c656e677468202858525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e6365202873657269616c697a65642058525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f756e" + "74293a43757272656e74206f626a6563742062616c616e63653a494e464f3a206765745f63757272656e745f6c6564" + "6765725f6f626a5f6669656c642842616c616e636529206661696c656420286d617920626520657870656374656429" + "3a43757272656e74206c6564676572206f626a656374206163636f756e743a494e464f3a206765745f63757272656e" + "745f6c65646765725f6f626a5f6669656c64284163636f756e7429206661696c65643a43757272656e74206e657374" + "6564206669656c64206c656e6774683a43757272656e74206e6573746564206669656c643a494e464f3a206765745f" + "63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c64206e6f74206170706c696361626c653a" + "43757272656e74206f626a656374205369676e657273206172726179206c656e6774683a43757272656e74206e6573" + "746564206172726179206c656e6774683a494e464f3a206765745f63757272656e745f6c65646765725f6f626a5f6e" + "65737465645f61727261795f6c656e206e6f74206170706c696361626c653a535543434553533a2043757272656e74" + "206c6564676572206f626a6563742066756e6374696f6e732d2d2d2043617465676f727920343a20416e79204c6564" + "676572204f626a6563742046756e6374696f6e73202d2d2d5375636365737366756c6c7920636163686564206f626a" + "65637420696e20736c6f743a436163686564206f626a6563742062616c616e6365206c656e67746820285852502061" + "6d6f756e74293a436163686564206f626a6563742062616c616e6365202873657269616c697a65642058525020616d" + "6f756e74293a436163686564206f626a6563742062616c616e6365206c656e67746820286e6f6e2d58525020616d6f" + "756e74293a436163686564206f626a6563742062616c616e63653a494e464f3a206765745f6c65646765725f6f626a" + "5f6669656c642842616c616e636529206661696c65643a436163686564206e6573746564206669656c64206c656e67" + "74683a436163686564206e6573746564206669656c643a494e464f3a206765745f6c65646765725f6f626a5f6e6573" + "7465645f6669656c64206e6f74206170706c696361626c653a436163686564206f626a656374205369676e65727320" + "6172726179206c656e6774683a436163686564206e6573746564206172726179206c656e6774683a494e464f3a2067" + "65745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e206e6f74206170706c696361626c653a53" + "5543434553533a20416e79206c6564676572206f626a6563742066756e6374696f6e73494e464f3a2063616368655f" + "6c65646765725f6f626a206661696c6564202865787065637465642077697468207465737420666978747572657329" + "3a494e464f3a206765745f6c65646765725f6f626a5f6669656c64206661696c656420617320657870656374656420" + "286e6f20636163686564206f626a656374293a494e464f3a206765745f6c65646765725f6f626a5f6e65737465645f" + "6669656c64206661696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f626a5f61" + "727261795f6c656e206661696c65642061732065787065637465643a494e464f3a206765745f6c65646765725f6f62" + "6a5f6e65737465645f61727261795f6c656e206661696c65642061732065787065637465643a535543434553533a20" + "416e79206c6564676572206f626a6563742066756e6374696f6e732028696e74657266616365207465737465642945" + "52524f523a206163636f756e74726f6f745f6964206661696c656420666f722063616368696e6720746573743a2d2d" + "2d2043617465676f727920353a204b65796c65742047656e65726174696f6e2046756e6374696f6e73202d2d2d4163" + "636f756e74206b65796c65743a546573745479706543726564656e7469616c206b65796c65743a494e464f3a206372" + "6564656e7469616c5f6b65796c6574206661696c656420286578706563746564202d20696e74657266616365206973" + "737565293a457363726f77206b65796c65743a4f7261636c65206b65796c65743a535543434553533a204b65796c65" + "742067656e65726174696f6e2066756e6374696f6e734552524f523a206f7261636c655f6b65796c6574206661696c" + "65643a4552524f523a20657363726f775f6b65796c6574206661696c65643a4552524f523a206163636f756e74726f" + "6f745f6964206661696c65643a2d2d2d2043617465676f727920363a205574696c6974792046756e6374696f6e7320" + "2d2d2d48656c6c6f2c205852504c205741534d20776f726c6421496e70757420646174613a5348413531322068616c" + "6620686173683a4e46542064617461206c656e6774683a4e465420646174613a494e464f3a206765745f6e66742066" + "61696c656420286578706563746564202d206e6f2073756368204e4654293a54657374207472616365206d65737361" + "67657061796c6f616454726163652066756e6374696f6e206279746573207772697474656e3a54657374206e756d62" + "657220747261636554726163655f6e756d2066756e6374696f6e20737563636565646564535543434553533a205574" + "696c6974792066756e6374696f6e734552524f523a2074726163655f6e756d2829206661696c65643a4552524f523a" + "2074726163652829206661696c65643a4552524f523a20636f6d707574655f7368613531325f68616c66206661696c" + "65643a2d2d2d2043617465676f727920373a2044617461205570646174652046756e6374696f6e73202d2d2d557064" + "61746564206c656467657220656e74727920646174612066726f6d205741534d20746573745375636365737366756c" + "6c792075706461746564206c656467657220656e74727920776974683a535543434553533a20446174612075706461" + "74652066756e6374696f6e734552524f523a207570646174655f64617461206661696c65643a004d0970726f647563" + "65727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e38372e30" + "202831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b0f6d7574" + "61626c652d676c6f62616c732b087369676e2d657874"; extern std::string const kAllKeyletsWasmHex = - "0061736d0100000001480960067f7f7f7f7f7f017f60047f7f7f7f017f60087f7f7f7f7f7f7f7f017f60037f7f7f01" - "7f60037f7f7e017f60057f7f7f7f7f017f60057f7f7f7f7f006000017f60037f7f7f000284051808686f73745f6c69" - "620974726163655f6e756d000408686f73745f6c6962057472616365000508686f73745f6c69621063616368655f6c" - "65646765725f6f626a000308686f73745f6c6962146765745f6c65646765725f6f626a5f6669656c64000108686f73" - "745f6c69621c6765745f63757272656e745f6c65646765725f6f626a5f6669656c64000308686f73745f6c69620d74" - "726163655f6163636f756e74000108686f73745f6c69620e6163636f756e745f6b65796c6574000108686f73745f6c" - "69620b6c696e655f6b65796c6574000208686f73745f6c69620a616d6d5f6b65796c6574000008686f73745f6c6962" - "0c636865636b5f6b65796c6574000008686f73745f6c69621163726564656e7469616c5f6b65796c6574000208686f" - "73745f6c69620f64656c65676174655f6b65796c6574000008686f73745f6c6962166465706f7369745f7072656175" - "74685f6b65796c6574000008686f73745f6c69620a6469645f6b65796c6574000108686f73745f6c69620d65736372" - "6f775f6b65796c6574000008686f73745f6c6962136d70745f69737375616e63655f6b65796c6574000008686f7374" - "5f6c69620e6d70746f6b656e5f6b65796c6574000008686f73745f6c6962106e66745f6f666665725f6b65796c6574" - "000008686f73745f6c69620c6f666665725f6b65796c6574000008686f73745f6c69620e7061796368616e5f6b6579" - "6c6574000208686f73745f6c69621a7065726d697373696f6e65645f646f6d61696e5f6b65796c6574000008686f73" - "745f6c69620e7369676e6572735f6b65796c6574000108686f73745f6c69620d7469636b65745f6b65796c65740000" - "08686f73745f6c69620c7661756c745f6b65796c6574000003040306070805030100110619037f01418080c0000b7f" - "0041ad8ac0000b7f0041b08ac0000b073e05066d656d6f727902000d6f626a6563745f65786973747300180666696e" - "69736800190a5f5f646174615f656e6403010b5f5f686561705f6261736503020ab73403a80502017f017e230041a0" - "016b22052400024020012d0000410146044041c280c000411620012802042201ac10001a200041013a000020002001" - "3602040c010b200541186a200141196a290000370300200541106a200141116a290000370300200541086a20014109" - "6a290000370300200520012900013703002002200320054120410110011a02402005412041001002220141004a0440" - "2004450440418b80c000410f4285801410001a20014185801420054180016a412010032201412047044041a680c000" - "4115417f20012001417f4e1b2201ac10001a200041013a0000200020013602040c040b200541c2006a20054182016a" - "2d00003a0000200541f0006a20054197016a2900002206370300200541286a22012005418f016a2900003703002005" - "41306a22022006370300200541386a22032005419f016a2d00003a0000200520052f0080013b014020052005290087" - "013703202005200528008301360043200541df006a20032d00003a0000200541d7006a2002290300370000200541cf" - "006a200129030037000020052005290320370047419a80c000410c200541406b4120410110011a0c020b418b80c000" - "410f2004ac10001a2001200420054180016a411410032201411447044041a680c0004115417f20012001417f4e1b22" - "01ac10001a200041013a0000200020013602040c030b200541c2006a20054182016a2d00003a000020052005290087" - "0137036020052005418c016a290000370065200520052f0080013b0140200520052903603703202005200529006537" - "00252005200528008301360043200541cc006a200529002537000020052005290320370047419a80c000410c200541" - "406b4114410110011a0c010b41bb80c00041072001ac10001a200041013a0000200020013602040c010b2000418002" - "3b01000b200541a0016a24000b8b2a02087f027e23004180076b2200240041d880c000412341014100410010011a02" - "402000027f02404181802020004188016a22024114100422014114460440200041066a2000418a016a22032d00003a" - "00002000200029008f013703e001200020004194016a22042900003700e501200020002f0088013b01042000200029" - "03e0013703d806200020002900e5013700dd062000200028008b01360007200041106a20002900dd06370000200020" - "002903d80637000b41fb80c0004108200041046a2205411410051a4183802020024114100422014114470d03200041" - "1a6a20032d00003a00002000200029008f013703e001200020042900003700e501200020002f0088013b0118200020" - "002903e0013703d806200020002900e5013700dd062000200028008b0136001b200041246a20002900dd0637000020" - "0020002903d80637001f418381c000410c200041186a411410051a200041a0016a2203420037030020004198016a22" - "04420037030020004190016a420037030020004200370388012005411420024120100622014120460d010240200141" - "00480440200020013602300c010b2000417f3602300b41010c020b0c020b200041c5006a2003290300370000200041" - "3d6a2004290300370000200041356a20004190016a290300370000200020002903880137002d41000b3a002c200041" - "88016a2000412c6a418f81c0004107418180201018024020002d0088014101460440200028028c01210141878ac000" - "4112420510001a0c010b41002101419681c000413541014100410010011a200041de006a41c4003a0000200041d800" - "6a4100360200200041e3006a41003a0000200041d5a6013b015c200042003703502000410036005f200041a0016a22" - "03420037030020004198016a2204420037030020004190016a2205420037030020004200370388010240200041046a" - "4114200041186a4114200041d0006a411420004188016a412010072202412047044002402002410048044020002002" - "3602680c010b2000417f3602680b410121010c010b200041fd006a2003290300370000200041f5006a200429030037" - "0000200041ed006a200529030037000020002000290388013700650b200020013a006420004188016a200041e4006a" - "41cb81c00041094100101820002d0088014101460440200028028c01210141878ac0004112420510001a0c010b41d4" - "81c000413741014100410010011a200041f0016a200041286a2203280100360200200041e8016a200041206a220429" - "0100370300200041fc016a200041d8006a290300220837020020004184026a200041e0006a28020022023602002000" - "20002901183703e0012000200029035022093702f401200041e8066a22012002360200200041e0066a220220083703" - "00200020093703d806200041f4066a2004290100370200200041fc066a2003280100360200200020002901183702ec" - "0620004188026a200041d8066a22034128101a2000418c016a200041e0016a41d000101a2000410136028801200041" - "f0066a220442003703002001420037030020024200370300200042003703d8062000027f41998ac0004114200041b4" - "016a412820034120100822034120470440024020034100480440200020033602e4010c010b2000417f3602e4010b41" - "010c010b200041f9016a2004290300370000200041f1016a2001290300370000200041e9016a200229030037000020" - "0020002903d8063700e10141000b3a00e001200041b4026a200041e0016a418b82c000410341818020101820002d00" - "b402410146044020002802b802210141878ac0004112420610001a0c010b41002101418e82c0004131410141004100" - "10011a200041808080303602d806200041f8016a22034200370300200041f0016a22044200370300200041e8016a22" - "054200370300200042003703e0010240200041046a4114200041d8066a4104200041e0016a41201009220241204704" - "40024020024100480440200020023602c0020c010b2000417f3602c0020b410121010c010b200041d5026a20032903" - "00370000200041cd026a2004290300370000200041c5026a2005290300370000200020002903e0013700bd020b2000" - "20013a00bc02200041e0016a200041bc026a41bf82c000410541818020101820002d00e001410146044020002802e4" - "01210141878ac0004112420610001a0c010b4100210141c482c000413341014100410010011a200041f8016a220342" - "00370300200041f0016a22044200370300200041e8016a22054200370300200042003703e0010240200041046a2202" - "41142002411441f782c0004112200041e0016a4120100a22024120470440024020024100480440200020023602e402" - "0c010b2000417f3602e4020b410121010c010b200041f9026a2003290300370000200041f1026a2004290300370000" - "200041e9026a2005290300370000200020002903e0013700e1020b200020013a00e002200041e0016a200041e0026a" - "418983c000410a41988020101820002d00e001410146044020002802e401210141878ac0004112420710001a0c010b" - "41002101419383c000413841014100410010011a200041f8016a22034200370300200041f0016a2204420037030020" - "0041e8016a22054200370300200042003703e0010240200041046a4114200041186a4114200041e0016a4120100b22" - "02412047044002402002410048044020002002360288030c010b2000417f360288030b410121010c010b2000419d03" - "6a200329030037000020004195036a20042903003700002000418d036a2005290300370000200020002903e0013700" - "85030b200020013a008403200041e0016a20004184036a41cb83c000410841818020101820002d00e0014101460440" - "20002802e401210141878ac0004112420810001a0c010b41d383c000413641014100410010011a230041206b220124" - "00200141186a22044200370300200141106a22054200370300200141086a2206420037030020014200370300200041" - "a8036a2202027f200041046a4114200041186a411420014120100c2203412047044002402003410048044020022003" - "3602040c010b2002417f3602040b41010c010b20022001290300370001200241196a2004290300370000200241116a" - "2005290300370000200241096a200629030037000041000b3a0000200141206a2400200041e0016a2002418984c000" - "410e41818020101820002d00e001410146044020002802e401210141878ac0004112420910001a0c010b419784c000" - "413c41014100410010011a230041206b22012400200141186a22044200370300200141106a22054200370300200141" - "086a2206420037030020014200370300200041cc036a2202027f200041046a411420014120100d2203412047044002" - "4020034100480440200220033602040c010b2002417f3602040b41010c010b20022001290300370001200241196a20" - "04290300370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141206a240020" - "0041e0016a200241d384c000410341818020101820002d00e001410146044020002802e401210141878ac000411242" - "0a10001a0c010b41d684c000413141014100410010011a230041306b22012400200141808080d80036020c20014128" - "6a22044200370300200141206a22054200370300200141186a2206420037030020014200370310200041f0036a2202" - "027f200041046a41142001410c6a4104200141106a4120100e22034120470440024020034100480440200220033602" - "040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004290300370000200241116a2005" - "290300370000200241096a200629030037000041000b3a0000200141306a2400200041e0016a2002418785c0004106" - "41818020101820002d00e001410146044020002802e401210141878ac0004112420b10001a0c010b418d85c0004134" - "41014100410010011a230041306b22012400200141808080e00036020c200141286a22044200370300200141206a22" - "054200370300200141186a220642003703002001420037031020004194046a2202027f200041046a41142001410c6a" - "4104200141106a4120100f22034120470440024020034100480440200220033602040c010b2002417f3602040b4101" - "0c010b20022001290310370001200241196a2004290300370000200241116a2005290300370000200241096a200629" - "030037000041000b3a0000200141306a2400200041f4016a200041146a280100360200200041ec016a2000410c6a29" - "0100370200200020002901043702e401200041808080e0003602e001200041d8066a200241c185c000410b41848020" - "101820002d00d806410146044020002802dc06210141878ac0004112420c10001a0c010b41cc85c000413941014100" - "410010011a230041206b22012400200141186a22044200370300200141106a22054200370300200141086a22064200" - "37030020014200370300200041b8046a2202027f200041e0016a4118200041186a4114200141201010220341204704" - "40024020034100480440200220033602040c010b2002417f3602040b41010c010b2002200129030037000120024119" - "6a2004290300370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141206a24" - "00200041d8066a2002418586c000410741818020101820002d00d806410146044020002802dc06210141878ac00041" - "12420d10001a0c010b418c86c000413541014100410010011a230041306b220124002001418080803036020c200141" - "286a22044200370300200141206a22054200370300200141186a2206420037030020014200370310200041dc046a22" - "02027f200041186a41142001410c6a4104200141106a41201011220341204704400240200341004804402002200336" - "02040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004290300370000200241116a20" - "05290300370000200241096a200629030037000041000b3a0000200141306a2400200041d8066a200241c186c00041" - "0c41828020101820002d00d806410146044020002802dc06210141878ac0004112420d10001a0c010b41cd86c00041" - "3a41014100410010011a230041306b22012400200141808080e80036020c200141286a22044200370300200141206a" - "22054200370300200141186a220642003703002001420037031020004180056a2202027f200041046a41142001410c" - "6a4104200141106a4120101222034120470440024020034100480440200220033602040c010b2002417f3602040b41" - "010c010b20022001290310370001200241196a2004290300370000200241116a2005290300370000200241096a2006" - "29030037000041000b3a0000200141306a2400200041d8066a2002418787c000410541818020101820002d00d80641" - "0146044020002802dc06210141878ac0004112420d10001a0c010b418c87c000413341014100410010011a23004130" - "6b22012400200141808080f00036020c200141286a22044200370300200141206a22054200370300200141186a2206" - "420037030020014200370310200041a4056a2202027f200041046a4114200041186a41142001410c6a410420014110" - "6a4120101322034120470440024020034100480440200220033602040c010b2002417f3602040b41010c010b200220" - "01290310370001200241196a2004290300370000200241116a2005290300370000200241096a200629030037000041" - "000b3a0000200141306a2400200041d8066a200241bf87c000410a41818020101820002d00d8064101460440200028" - "02dc06210141878ac0004112420e10001a0c010b41c987c000413841014100410010011a230041306b220124002001" - "41808080f80036020c200141286a22044200370300200141206a22054200370300200141186a220642003703002001" - "4200370310200041c8056a2202027f200041046a41142001410c6a4104200141106a41201014220341204704400240" - "20034100480440200220033602040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004" - "290300370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141306a24002000" - "41d8066a2002418188c000411241828020101820002d00d806410146044020002802dc06210141878ac0004112420f" - "10001a0c010b419388c00041c00041014100410010011a230041206b22012400200141186a22044200370300200141" - "106a22054200370300200141086a2206420037030020014200370300200041ec056a2202027f200041046a41142001" - "4120101522034120470440024020034100480440200220033602040c010b2002417f3602040b41010c010b20022001" - "290300370001200241196a2004290300370000200241116a2005290300370000200241096a20062903003700004100" - "0b3a0000200141206a2400200041d8066a200241d388c000410a4100101820002d00d806410146044020002802dc06" - "210141878ac0004112421010001a0c010b41dd88c000413841014100410010011a230041306b220124002001418080" - "80900136020c200141286a22044200370300200141206a22054200370300200141186a220642003703002001420037" - "031020004190066a2202027f200041046a41142001410c6a4104200141106a41201016220341204704400240200341" - "00480440200220033602040c010b2002417f3602040b41010c010b20022001290310370001200241196a2004290300" - "370000200241116a2005290300370000200241096a200629030037000041000b3a0000200141306a2400200041d806" - "6a2002419589c000410641818020101820002d00d806410146044020002802dc06210141878ac0004112421210001a" - "0c010b41012101419b89c000413441014100410010011a230041306b22022400200241808080980136020c20024128" - "6a22054200370300200241206a22064200370300200241186a2207420037030020024200370310200041b4066a2203" - "027f200041046a41142002410c6a4104200241106a4120101722044120470440024020044100480440200320043602" - "040c010b2003417f3602040b41010c010b20032002290310370001200341196a2005290300370000200341116a2006" - "290300370000200341096a200729030037000041000b3a0000200241306a2400200041d8066a200341cf89c0004105" - "41818020101820002d00d806410146044020002802dc06210141878ac0004112421310001a0c010b41d489c0004133" - "41014100410010011a0b20004180076a240020010f0b418080c000410b417f20012001417f4e1bac1000000bfd0401" - "067f200241104f0440024020002000410020006b41037122056a22044f0d0020012103200504402005210603402000" - "20032d00003a0000200341016a2103200041016a2100200641016b22060d000b0b200541016b4107490d0003402000" - "20032d00003a0000200041016a200341016a2d00003a0000200041026a200341026a2d00003a0000200041036a2003" - "41036a2d00003a0000200041046a200341046a2d00003a0000200041056a200341056a2d00003a0000200041066a20" - "0341066a2d00003a0000200041076a200341076a2d00003a0000200341086a2103200041086a22002004470d000b0b" - "2004200220056b2207417c7122086a21000240200120056a2206410371450440200020044d0d012006210103402004" - "2001280200360200200141046a2101200441046a22042000490d000b0c010b200020044d0d00200641037422054118" - "7121032006417c71220241046a2101410020056b411871210520022802002102034020042002200376200128020022" - "0220057472360200200141046a2101200441046a22042000490d000b0b20074103712102200620086a21010b024020" - "00200020026a22064f0d002002410771220304400340200020012d00003a0000200141016a2101200041016a210020" - "0341016b22030d000b0b200241016b4107490d000340200020012d00003a0000200041016a200141016a2d00003a00" - "00200041026a200141026a2d00003a0000200041036a200141036a2d00003a0000200041046a200141046a2d00003a" - "0000200041056a200141056a2d00003a0000200041066a200141066a2d00003a0000200041076a200141076a2d0000" - "3a0000200141086a2101200041086a22002006470d000b0b0b0ba30a0100418080c0000b990a6572726f725f636f64" - "653d47657474696e67206669656c643a204669656c6420646174613a204572726f722067657474696e67206669656c" - "643a204572726f723a204572726f722067657474696e67206b65796c65743a202424242424205354415254494e4720" - "5741534d20455845435554494f4e2024242424244163636f756e743a44657374696e6174696f6e3a4163636f756e74" - "4163636f756e74206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066" - "696e6973682e54727573746c696e6554727573746c696e65206f626a656374206578697374732c2070726f63656564" - "696e67207769746820657363726f772066696e6973682e414d4d414d4d206f626a656374206578697374732c207072" - "6f63656564696e67207769746820657363726f772066696e6973682e436865636b436865636b206f626a6563742065" - "78697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e7465726d73616e64636f" - "6e646974696f6e7343726564656e7469616c43726564656e7469616c206f626a656374206578697374732c2070726f" - "63656564696e67207769746820657363726f772066696e6973682e44656c656761746544656c6567617465206f626a" - "656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e4465706f73" - "6974507265617574684465706f73697450726561757468206f626a656374206578697374732c2070726f6365656469" - "6e67207769746820657363726f772066696e6973682e444944444944206f626a656374206578697374732c2070726f" - "63656564696e67207769746820657363726f772066696e6973682e457363726f77457363726f77206f626a65637420" - "6578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e4d505449737375616e" - "63654d505449737375616e6365206f626a656374206578697374732c2070726f63656564696e672077697468206573" - "63726f772066696e6973682e4d50546f6b656e4d50546f6b656e206f626a656374206578697374732c2070726f6365" - "6564696e67207769746820657363726f772066696e6973682e4e46546f6b656e4f666665724e46546f6b656e4f6666" - "6572206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e697368" - "2e4f666665724f66666572206f626a656374206578697374732c2070726f63656564696e6720776974682065736372" - "6f772066696e6973682e5061794368616e6e656c5061794368616e6e656c206f626a656374206578697374732c2070" - "726f63656564696e67207769746820657363726f772066696e6973682e5065726d697373696f6e6564446f6d61696e" - "5065726d697373696f6e6564446f6d61696e206f626a656374206578697374732c2070726f63656564696e67207769" - "746820657363726f772066696e6973682e5369676e65724c6973745369676e65724c697374206f626a656374206578" - "697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e5469636b65745469636b65" - "74206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e" - "5661756c745661756c74206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f" - "772066696e6973682e43757272656e74207365712076616c75653a004d0970726f64756365727302086c616e677561" - "6765010452757374000c70726f6365737365642d6279010572757374631d312e38372e302028313730363765396163" - "20323032352d30352d303929002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c" - "732b087369676e2d657874"; + "0061736d0100000001500a60067f7f7f7f7f7f017f60047f7f7f7f017f60087f7f7f7f7f7f7f7f017f60047f7f7f7f" + "0060037f7f7f017f60037f7f7e017f60057f7f7f7f7f017f6000017f60037f7f7f0060067f7f7f7f7f7e00029f0418" + "08686f73745f6c69620974726163655f6e756d000508686f73745f6c6962057472616365000608686f73745f6c6962" + "0863616368655f6c65000408686f73745f6c6962086c655f6669656c64000108686f73745f6c69620d686f6d655f6c" + "655f6669656c64000408686f73745f6c69620a74726163655f61636374000108686f73745f6c69620e6163636f756e" + "74726f6f745f6964000108686f73745f6c69620c74727573746c696e655f6964000208686f73745f6c696206616d6d" + "5f6964000008686f73745f6c696208636865636b5f6964000008686f73745f6c69620d63726564656e7469616c5f69" + "64000208686f73745f6c69620b64656c65676174655f6964000008686f73745f6c6962126465706f7369745f707265" + "617574685f6964000008686f73745f6c6962066469645f6964000108686f73745f6c696209657363726f775f696400" + "0008686f73745f6c69620f6d70745f69737375616e63655f6964000008686f73745f6c69620a6d70746f6b656e5f69" + "64000008686f73745f6c69620c6e66745f6f666665725f6964000008686f73745f6c6962086f666665725f69640000" + "08686f73745f6c69620a7061796368616e5f6964000208686f73745f6c6962167065726d697373696f6e65645f646f" + "6d61696e5f6964000008686f73745f6c69620a7369676e6572735f6964000108686f73745f6c6962097469636b6574" + "5f6964000008686f73745f6c6962087661756c745f6964000003070603030307080905030100110619037f01418080" + "c0000b7f0041c28ac0000b7f0041d08ac0000b072e04066d656d6f727902000666696e697368001b0a5f5f64617461" + "5f656e6403010b5f5f686561705f6261736503020ae83706140020002001200220034182802042828020101d0b1400" + "20002001200220034181802042818020101d0bd10302017f017e230041a0016b22042400024020012d000041014604" + "4041d780c000411620012802042201ac10001a200041013a0000200020013602040c010b200441186a200141196a29" + "0000370300200441106a200141116a290000370300200441086a200141096a29000037030020042001290001370300" + "2002200320044120410110011a2004412041001002220141004c044041d080c00041072001ac10001a200041013a00" + "00200020013602040c010b418b80c000410f4285801410001a20014185801420044180016a41201003220141204704" + "4041af80c0004115417f20012001417f4e1b2201ac10001a200041013a0000200020013602040c010b200441c2006a" + "20044182016a2d00003a0000200441f0006a20044197016a2900002205370300200441286a22012004418f016a2900" + "00370300200441306a22022005370300200441386a22032004419f016a2d00003a0000200420042f0080013b014020" + "042004290087013703202004200428008301360043200441df006a20032d00003a0000200441d7006a200229030037" + "0000200441cf006a20012903003700002004200429032037004741c480c000410c200441406b4120410110011a2000" + "4180023b01000b200441a0016a24000bd32c02097f027e23004180076b2200240041ed80c000412341014100410010" + "011a02402000027f02404181802020004190016a220741141004220641144604402000410e6a20004192016a22032d" + "00003a000020002000290097013703e80120002000419c016a22012900003700ed01200020002f0090013b010c2000" + "20002903e8013703d806200020002900ed013700dd06200020002800930136000f200041186a20002900dd06370000" + "200020002903d806370013419081c00041082000410c6a2204411410051a4183802020074114100422064114470d03" + "200041226a20032d00003a000020002000290097013703e801200020012900003700ed01200020002f0090013b0120" + "200020002903e8013703d806200020002900ed013700dd0620002000280093013600232000412c6a20002900dd0637" + "0000200020002903d806370027419881c000410c200041206a411410051a200041a8016a22034200370300200041a0" + "016a2201420037030020004198016a420037030020004200370390012004411420074120100622044120460d010240" + "20044100480440200020043602380c010b2000417f3602380b41010c020b0c020b200041cd006a2003290300370000" + "200041c5006a20012903003700002000413d6a20004198016a290300370000200020002903900137003541000b3a00" + "3420004190016a200041346a41a481c00041071019024020002d00900141014604402000280294012106419c8ac000" + "4112420510001a0c010b4100210641ab81c000413541014100410010011a200041e6006a41c4003a0000200041e000" + "6a4100360200200041eb006a41003a0000200041d5a6013b01642000420037035820004100360067200041a8016a22" + "044200370300200041a0016a2203420037030020004198016a22014200370300200042003703900102402000410c6a" + "4114200041206a4114200041d8006a411420004190016a412010072207412047044002402007410048044020002007" + "3602700c010b2000417f3602700b410121060c010b20004185016a2004290300370000200041fd006a200329030037" + "0000200041f5006a2001290300370000200020002903900137006d0b200020063a006c20004190016a200041ec006a" + "41e081c0004109101a20002d00900141014604402000280294012106419c8ac0004112420510001a0c010b41002106" + "41e981c000413741014100410010011a200041f8016a200041306a2204280100360200200041f0016a200041286a22" + "0329010037030020004184026a200041e0006a290300220a3702002000418c026a200041e8006a2802002201360200" + "200020002901203703e8012000200029035822093702fc01200041e8066a22052001360200200041e0066a2207200a" + "370300200020093703d806200041f4066a2003290100370200200041fc066a20042801003602002000200029012037" + "02ec0620004190026a200041d8066a22034128101c20004194016a200041e8016a41d000101c200041013602900120" + "0041f0066a220142003703002005420037030020074200370300200042003703d806024041ae8ac0004114200041bc" + "016a412820034120100822034120470440024020034100480440200020033602ec010c010b2000417f3602ec010b41" + "0121060c010b20004181026a2001290300370000200041f9016a2005290300370000200041f1016a20072903003700" + "00200020002903d8063700e9010b200020063a00e801200041bc026a200041e8016a41a082c0004103101920002d00" + "bc02410146044020002802c0022106419c8ac0004112420610001a0c010b4100210641a382c0004131410141004100" + "10011a200041063602d80620004180026a22044200370300200041f8016a22034200370300200041f0016a22014200" + "370300200042003703e80102402000410c6a4114200041d8066a4104200041e8016a41201009220741204704400240" + "20074100480440200020073602c8020c010b2000417f3602c8020b410121060c010b200041dd026a20042903003700" + "00200041d5026a2003290300370000200041cd026a2001290300370000200020002903e8013700c5020b200020063a" + "00c402200041e8016a200041c4026a41d482c0004105101920002d00e801410146044020002802ec012106419c8ac0" + "004112420610001a0c010b41d982c000413341014100410010011a20004180026a4200370300200041f8016a420037" + "0300200041f0016a4200370300200042003703e801024002402000410c6a2201411420014114418c83c00041122000" + "41e8016a4120100a2201412047044041d780c0004116417f20012001417f4e1b2206ac10001a0c010b200041da066a" + "20002d00ea013a0000200041f0026a200041f7016a290000220a370300200041f8026a200041ff016a290000220937" + "030020004180036a20004187026a2d000022013a0000200041e7066a200a370000200041ef066a2009370000200041" + "f7066a20013a0000200020002f01e8013b01d806200020002900ef0122093703e802200020002800eb013600db0620" + "0020093700df06419e83c000410a200041d8066a22014120410110011a2001412041001002220641004c044041d080" + "c00041072006ac10001a0c010b418b80c000410f4298802010001a200641988020200041e8016a4114100322014114" + "460d0141af80c0004115417f20012001417f4e1b2206ac10001a0b419c8ac0004112420710001a0c010b419a80c000" + "411541014100410010011a41a883c000413841014100410010011a230041206b22082400200841186a220742003703" + "00200841106a22044200370300200841086a220342003703002008420037030020004184036a2201027f2000410c6a" + "22064114200041206a2202411420084120100b22054120470440024020054100480440200120053602040c010b2001" + "417f3602040b41010c010b20012008290300370001200141196a2007290300370000200141116a2004290300370000" + "200141096a200329030037000041000b3a0000200841206a2400200041e8016a2205200141e083c000410810192000" + "2d00e80145044041e883c000413641014100410010011a230041206b22082400200841186a22074200370300200841" + "106a22044200370300200841086a2203420037030020084200370300200041a8036a2201027f200641142002411420" + "084120100c22024120470440024020024100480440200120023602040c010b2001417f3602040b41010c010b200120" + "08290300370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037000041" + "000b3a0000200841206a240020052001419e84c000410e101920002d00e801410146044020002802ec012106419c8a" + "c0004112420910001a0c020b41ac84c000413c41014100410010011a230041206b22022400200241186a2207420037" + "0300200241106a22044200370300200241086a2203420037030020024200370300200041cc036a2201027f2000410c" + "6a411420024120100d22054120470440024020054100480440200120053602040c010b2001417f3602040b41010c01" + "0b20012002290300370001200141196a2007290300370000200141116a2004290300370000200141096a2003290300" + "37000041000b3a0000200241206a2400200041e8016a200141e884c0004103101920002d00e8014101460440200028" + "02ec012106419c8ac0004112420a10001a0c020b41eb84c000413141014100410010011a230041306b220224002002" + "410b36020c200241286a22074200370300200241206a22044200370300200241186a22034200370300200242003703" + "10200041f0036a2201027f2000410c6a41142002410c6a4104200241106a4120100e22054120470440024020054100" + "480440200120053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a200729030037" + "0000200141116a2004290300370000200141096a200329030037000041000b3a0000200241306a2400200041e8016a" + "2001419c85c0004106101920002d00e801410146044020002802ec012106419c8ac0004112420b10001a0c020b41a2" + "85c000413441014100410010011a230041306b220224002002410c36020c200241286a22074200370300200241206a" + "22044200370300200241186a220342003703002002420037031020004194046a2201027f2000410c6a41142002410c" + "6a4104200241106a4120100f22054120470440024020054100480440200120053602040c010b2001417f3602040b41" + "010c010b20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a2003" + "29030037000041000b3a0000200241306a2400200041fc016a2000411c6a280100360200200041f4016a200041146a" + "2901003702002000200029010c3702ec01200041808080e0003602e801200041d8066a2103230041406a2204240002" + "4020012d0000410146044041d780c000411620012802042201ac10001a200341013a0000200320013602040c010b20" + "0441206a200141196a290000370300200441186a200141116a290000370300200441106a200141096a290000370300" + "2004200129000137030841d685c000410b200441086a22014120410110011a02400240200141204100100222014100" + "4c044041d080c00041072001ac10001a0c010b418b80c000410f4284802010001a2001418480202004412c6a411410" + "0322014114460d0141af80c0004115417f20012001417f4e1b2201ac10001a0b200341013a0000200320013602040c" + "010b419a80c000411541014100410010011a20034180023b01000b200441406b240020002d00d80641014604402000" + "2802dc062106419c8ac0004112420c10001a0c020b41e185c000413941014100410010011a230041206b2202240020" + "0241186a22074200370300200241106a22044200370300200241086a2203420037030020024200370300200041b804" + "6a2201027f200041e8016a4118200041206a4114200241201010220541204704400240200541004804402001200536" + "02040c010b2001417f3602040b41010c010b20012002290300370001200141196a2007290300370000200141116a20" + "04290300370000200141096a200329030037000041000b3a0000200241206a2400200041d8066a2001419a86c00041" + "07101920002d00d806410146044020002802dc062106419c8ac0004112420d10001a0c020b41a186c0004135410141" + "00410010011a230041306b220224002002410636020c200241286a22074200370300200241206a2204420037030020" + "0241186a2203420037030020024200370310200041dc046a2201027f200041206a41142002410c6a4104200241106a" + "4120101122054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b20012002" + "290310370001200141196a2007290300370000200141116a2004290300370000200141096a20032903003700004100" + "0b3a0000200241306a2400200041d8066a200141d686c000410c101820002d00d806410146044020002802dc062106" + "419c8ac0004112420d10001a0c020b41e286c000413a41014100410010011a230041306b220224002002410d36020c" + "200241286a22074200370300200241206a22044200370300200241186a220342003703002002420037031020004180" + "056a2201027f2000410c6a41142002410c6a4104200241106a41201012220541204704400240200541004804402001" + "20053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a2007290300370000200141" + "116a2004290300370000200141096a200329030037000041000b3a0000200241306a2400200041d8066a2001419c87" + "c0004105101920002d00d806410146044020002802dc062106419c8ac0004112420d10001a0c020b41a187c0004133" + "41014100410010011a230041306b220224002002410e36020c200241286a22074200370300200241206a2204420037" + "0300200241186a2203420037030020024200370310200041a4056a2201027f2000410c6a4114200041206a41142002" + "410c6a4104200241106a4120101322054120470440024020054100480440200120053602040c010b2001417f360204" + "0b41010c010b20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a" + "200329030037000041000b3a0000200241306a2400200041d8066a200141d487c000410a101920002d00d806410146" + "044020002802dc062106419c8ac0004112420e10001a0c020b41de87c000413841014100410010011a230041306b22" + "0224002002410f36020c200241286a22074200370300200241206a22044200370300200241186a2203420037030020" + "024200370310200041c8056a2201027f2000410c6a41142002410c6a4104200241106a412010142205412047044002" + "4020054100480440200120053602040c010b2001417f3602040b41010c010b20012002290310370001200141196a20" + "07290300370000200141116a2004290300370000200141096a200329030037000041000b3a0000200241306a240020" + "0041d8066a2001419688c0004112101820002d00d806410146044020002802dc062106419c8ac0004112420f10001a" + "0c020b41a888c00041c00041014100410010011a230041206b22022400200241186a22074200370300200241106a22" + "044200370300200241086a2203420037030020024200370300200041ec056a2201027f2000410c6a41142002412010" + "1522054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b20012002290300" + "370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037000041000b3a00" + "00200241206a2400200041d8066a200141e888c000410a101a20002d00d806410146044020002802dc062106419c8a" + "c0004112421010001a0c020b41f288c000413841014100410010011a230041306b220224002002411236020c200241" + "286a22074200370300200241206a22044200370300200241186a220342003703002002420037031020004190066a22" + "01027f2000410c6a41142002410c6a4104200241106a41201016220541204704400240200541004804402001200536" + "02040c010b2001417f3602040b41010c010b20012002290310370001200141196a2007290300370000200141116a20" + "04290300370000200141096a200329030037000041000b3a0000200241306a2400200041d8066a200141aa89c00041" + "06101920002d00d806410146044020002802dc062106419c8ac0004112421210001a0c020b4101210641b089c00041" + "3441014100410010011a230041306b220224002002411336020c200241286a22074200370300200241206a22044200" + "370300200241186a2203420037030020024200370310200041b4066a2201027f2000410c6a41142002410c6a410420" + "0241106a4120101722054120470440024020054100480440200120053602040c010b2001417f3602040b41010c010b" + "20012002290310370001200141196a2007290300370000200141116a2004290300370000200141096a200329030037" + "000041000b3a0000200241306a2400200041d8066a200141e489c0004105101920002d00d806410146044020002802" + "dc062106419c8ac0004112421310001a0c020b41e989c000413341014100410010011a0c010b20002802ec01210641" + "9c8ac0004112420810001a0b20004180076a240020060f0b418080c000410b417f20062006417f4e1bac1000000bfd" + "0401067f200241104f0440024020002000410020006b41037122056a22044f0d002001210320050440200521060340" + "200020032d00003a0000200341016a2103200041016a2100200641016b22060d000b0b200541016b4107490d000340" + "200020032d00003a0000200041016a200341016a2d00003a0000200041026a200341026a2d00003a0000200041036a" + "200341036a2d00003a0000200041046a200341046a2d00003a0000200041056a200341056a2d00003a000020004106" + "6a200341066a2d00003a0000200041076a200341076a2d00003a0000200341086a2103200041086a22002004470d00" + "0b0b2004200220056b2207417c7122086a21000240200120056a2206410371450440200020044d0d01200621010340" + "20042001280200360200200141046a2101200441046a22042000490d000b0c010b200020044d0d0020064103742205" + "41187121032006417c71220241046a2101410020056b41187121052002280200210203402004200220037620012802" + "00220220057472360200200141046a2101200441046a22042000490d000b0b20074103712102200620086a21010b02" + "402000200020026a22064f0d002002410771220304400340200020012d00003a0000200141016a2101200041016a21" + "00200341016b22030d000b0b200241016b4107490d000340200020012d00003a0000200041016a200141016a2d0000" + "3a0000200041026a200141026a2d00003a0000200041036a200141036a2d00003a0000200041046a200141046a2d00" + "003a0000200041056a200141056a2d00003a0000200041066a200141066a2d00003a0000200041076a200141076a2d" + "00003a0000200141086a2101200041086a22002006470d000b0b0b940201017f230041406a22062400024020012d00" + "00410146044041d780c000411620012802042201ac10001a200041013a0000200020013602040c010b200641206a20" + "0141196a290000370300200641186a200141116a290000370300200641106a200141096a2900003703002006200129" + "000137030820022003200641086a22014120410110011a024002402001412041001002220141004c044041d080c000" + "41072001ac10001a0c010b418b80c000410f200510001a200120042006412c6a4114100322014114460d0141af80c0" + "004115417f20012001417f4e1b2201ac10001a0b200041013a0000200020013602040c010b419a80c0004115410141" + "00410010011a20004180023b01000b200641406b24000b0bb80a0100418080c0000bae0a6572726f725f636f64653d" + "47657474696e67206669656c643a204669656c6420646174613a207265747269657665644572726f72206765747469" + "6e67206669656c643a204669656c6420646174613a204572726f723a204572726f722067657474696e67206b65796c" + "65743a202424242424205354415254494e47205741534d20455845435554494f4e2024242424244163636f756e743a" + "44657374696e6174696f6e3a4163636f756e744163636f756e74206f626a656374206578697374732c2070726f6365" + "6564696e67207769746820657363726f772066696e6973682e54727573746c696e6554727573746c696e65206f626a" + "656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e414d4d414d" + "4d206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e" + "436865636b436865636b206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f" + "772066696e6973682e7465726d73616e64636f6e646974696f6e7343726564656e7469616c43726564656e7469616c" + "206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e44" + "656c656761746544656c6567617465206f626a656374206578697374732c2070726f63656564696e67207769746820" + "657363726f772066696e6973682e4465706f736974507265617574684465706f73697450726561757468206f626a65" + "6374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e444944444944" + "206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e45" + "7363726f77457363726f77206f626a656374206578697374732c2070726f63656564696e6720776974682065736372" + "6f772066696e6973682e4d505449737375616e63654d505449737375616e6365206f626a656374206578697374732c" + "2070726f63656564696e67207769746820657363726f772066696e6973682e4d50546f6b656e4d50546f6b656e206f" + "626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e4e4654" + "6f6b656e4f666665724e46546f6b656e4f66666572206f626a656374206578697374732c2070726f63656564696e67" + "207769746820657363726f772066696e6973682e4f666665724f66666572206f626a656374206578697374732c2070" + "726f63656564696e67207769746820657363726f772066696e6973682e5061794368616e6e656c5061794368616e6e" + "656c206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f772066696e697368" + "2e5065726d697373696f6e6564446f6d61696e5065726d697373696f6e6564446f6d61696e206f626a656374206578" + "697374732c2070726f63656564696e67207769746820657363726f772066696e6973682e5369676e65724c69737453" + "69676e65724c697374206f626a656374206578697374732c2070726f63656564696e67207769746820657363726f77" + "2066696e6973682e5469636b65745469636b6574206f626a656374206578697374732c2070726f63656564696e6720" + "7769746820657363726f772066696e6973682e5661756c745661756c74206f626a656374206578697374732c207072" + "6f63656564696e67207769746820657363726f772066696e6973682e43757272656e74207365712076616c75653a00" + "4d0970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374" + "631d312e38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f666561747572" + "6573022b0f6d757461626c652d676c6f62616c732b087369676e2d657874"; extern std::string const kCodecovTestsWasmHex = - "0061736d01000000015a0c60057f7f7f7f7f017f60037f7f7e017f60027f7f017f60037f7f7f017f60047f7f7f7f01" - "7f60017f017f60067f7f7f7f7f7f017f60087f7f7f7f7f7f7f7f017f60077f7f7f7f7f7f7f017f60047f7f7f7f0060" - "00006000017f02840d3b08686f73745f6c6962057472616365000008686f73745f6c69620974726163655f6e756d00" - "0108686f73745f6c69620e6765745f6c65646765725f73716e000208686f73745f6c6962166765745f706172656e74" - "5f6c65646765725f74696d65000208686f73745f6c6962166765745f706172656e745f6c65646765725f6861736800" - "0208686f73745f6c69620c6765745f626173655f666565000208686f73745f6c696211616d656e646d656e745f656e" - "61626c6564000208686f73745f6c69620c6765745f74785f6669656c64000308686f73745f6c69620e6163636f756e" - "745f6b65796c6574000408686f73745f6c69621063616368655f6c65646765725f6f626a000308686f73745f6c6962" - "1c6765745f63757272656e745f6c65646765725f6f626a5f6669656c64000308686f73745f6c6962146765745f6c65" - "646765725f6f626a5f6669656c64000408686f73745f6c6962136765745f74785f6e65737465645f6669656c640004" - "08686f73745f6c6962236765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c640004" - "08686f73745f6c69621b6765745f6c65646765725f6f626a5f6e65737465645f6669656c64000008686f73745f6c69" - "62106765745f74785f61727261795f6c656e000508686f73745f6c6962206765745f63757272656e745f6c65646765" - "725f6f626a5f61727261795f6c656e000508686f73745f6c6962186765745f6c65646765725f6f626a5f6172726179" - "5f6c656e000208686f73745f6c6962176765745f74785f6e65737465645f61727261795f6c656e000208686f73745f" - "6c6962276765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e00020868" - "6f73745f6c69621f6765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e000308686f73745f" - "6c69620b7570646174655f64617461000208686f73745f6c696213636f6d707574655f7368613531325f68616c6600" - "0408686f73745f6c696209636865636b5f736967000608686f73745f6c6962076765745f6e6674000608686f73745f" - "6c69620e6765745f6e66745f697373756572000408686f73745f6c69620d6765745f6e66745f7461786f6e00040868" - "6f73745f6c69620d6765745f6e66745f666c616773000208686f73745f6c6962146765745f6e66745f7472616e7366" - "65725f666565000208686f73745f6c69620e6765745f6e66745f73657269616c000408686f73745f6c69620d747261" - "63655f6163636f756e74000408686f73745f6c69620c74726163655f616d6f756e74000408686f73745f6c69620c63" - "6865636b5f6b65796c6574000608686f73745f6c69620f666c6f61745f66726f6d5f75696e74000008686f73745f6c" - "69620b6c696e655f6b65796c6574000708686f73745f6c69620a616d6d5f6b65796c6574000608686f73745f6c6962" - "1163726564656e7469616c5f6b65796c6574000708686f73745f6c69620e6d70746f6b656e5f6b65796c6574000608" - "686f73745f6c69621274726163655f6f70617175655f666c6f6174000408686f73745f6c69620d666c6f61745f636f" - "6d70617265000408686f73745f6c696209666c6f61745f616464000808686f73745f6c69620e666c6f61745f737562" - "7472616374000808686f73745f6c69620e666c6f61745f6d756c7469706c79000808686f73745f6c69620c666c6f61" - "745f646976696465000808686f73745f6c69620a666c6f61745f726f6f74000608686f73745f6c696209666c6f6174" - "5f706f77000608686f73745f6c69620d657363726f775f6b65796c6574000608686f73745f6c6962136d70745f6973" - "7375616e63655f6b65796c6574000608686f73745f6c6962106e66745f6f666665725f6b65796c6574000608686f73" - "745f6c69620c6f666665725f6b65796c6574000608686f73745f6c69620d6f7261636c655f6b65796c657400060868" - "6f73745f6c69620e7061796368616e5f6b65796c6574000708686f73745f6c69621a7065726d697373696f6e65645f" - "646f6d61696e5f6b65796c6574000608686f73745f6c69620d7469636b65745f6b65796c6574000608686f73745f6c" - "69620c7661756c745f6b65796c6574000608686f73745f6c69620f64656c65676174655f6b65796c6574000608686f" - "73745f6c6962166465706f7369745f707265617574685f6b65796c6574000608686f73745f6c69620a6469645f6b65" - "796c6574000408686f73745f6c69620e7369676e6572735f6b65796c65740004030403090a0b05030100110619037f" - "01418080c0000b7f0041a8a1c0000b7f0041b0a1c0000b072e04066d656d6f727902000666696e697368003d0a5f5f" - "646174615f656e6403010b5f5f686561705f6261736503020aa43f0368000240024020002001460d00200220034101" - "410041001080808080001a2000417f4c0d01418b80c08000410b2000ad1081808080001a10bc80808000000b200220" - "032000ac1081808080001a0f0b418b80c08000410b2000ac1081808080001a10bc80808000000b0300000bb43e0305" - "7f017e017f2380808080004190026b2200248080808000419680c0800041234101410041001080808080001a200041" - "00360260200041e0006a4104108280808000410441bd8cc08000410e10bb8080800020004100360260200041e0006a" - "4104108380808000410441cb8cc08000411610bb80808000200041e0006a41186a22014200370300200041e0006a41" - "106a22024200370300200041e0006a41086a2203420037030020004200370360200041e0006a412010848080800041" - "2041e18cc08000411610bb8080800020004100360260200041e0006a4104108580808000410441f78cc08000410c10" - "bb80808000200041086a41186a428182848890a0c08001370300200041086a41106a428182848890a0c08001370300" - "200041086a41086a428182848890a0c080013703002000428182848890a0c0800137030841b980c08000410e108680" - "808000410141c780c08000411110bb80808000200041086a4120108680808000410141c780c08000411110bb808080" - "000240024041818020200041e0006a411410878080800022044114470d002000412c6a41026a200041e0006a41026a" - "2d00003a0000200020002900673703e8012000200041e0006a410c6a2900003700ed01200020002f00603b012c2000" - "20002903e8013703a801200020002900ed013700ad012000200028006336002f2000412c6a410c6a20002900ad0137" - "0000200020002903a801370033200142003703002002420037030020034200370300200042003703602000412c6a41" - "14200041e0006a412010888080800022014120470d01200041c0006a41026a20002d00623a0000200041e8016a4108" - "6a2201200041e0006a410f6a2900002205370300200041c0006a410f6a2005370000200041c0006a41176a200041e0" - "006a41176a290000370000200041c0006a411f6a200041e0006a411f6a2d00003a0000200020002f01603b01402000" - "200028006336004320002000290067370047200041c0006a41204100108980808000410141d880c08000411010bb80" - "808000200041e0006a41106a22024100360200200041e0006a41086a22034200370300200042003703604181802020" - "0041e0006a4114108a80808000411441838dc08000411c10bb80808000200241003602002003420037030020004200" - "370360410141818020200041e0006a4114108b808080004114419f8dc08000411410bb80808000200041043602a001" - "200041818020360260200041e8016a41106a2202410036020020014200370300200042003703e801200041e0006a41" - "04200041e8016a4114108c80808000411441b38dc08000411310bb8080800020024100360200200142003703002000" - "42003703e801200041e0006a20002802a001200041e8016a4114108d80808000411441c68dc08000412310bb808080" - "002002410036020020014200370300200042003703e8014101200041e0006a20002802a001200041e8016a4114108e" - "80808000411441e98dc08000411b10bb808080004189803c108f80808000412041e880c08000411010bb8080800041" - "89803c109080808000412041f880c08000412010bb8080800041014189803c1091808080004120419881c080004118" - "10bb80808000200041e0006a20002802a001109280808000412041b081c08000411710bb80808000200041e0006a20" - "002802a001109380808000412041c781c08000412710bb808080004101200041e0006a20002802a001109480808000" - "412041ee81c08000411f10bb808080002000412c6a41141095808080004114418d82c08000410b10bb808080002000" - "41e8016a41186a220342003703002002420037030020014200370300200042003703e801200041e0006a20002802a0" - "01200041e8016a4120109680808000412041848ec08000411310bb80808000419882c08000410c41a482c08000410b" - "41af82c08000410e109780808000410141bd82c08000410910bb80808000200041a8016a41186a200041086a41186a" - "290300370300200041a8016a41106a200041086a41106a290300370300200041a8016a41086a200041086a41086a29" - "0300370300200020002903083703a801200241003b010020014200370300200042003703e8012000412c6a41142000" - "41a8016a4120200041e8016a4112109880808000411241978ec08000410710bb808080002002410036020020014200" - "370300200042003703e801200041a8016a4120200041e8016a41141099808080004114419e8ec08000410e10bb8080" - "8000200041003602e801200041a8016a4120200041e8016a4104109a80808000410441ac8ec08000410d10bb808080" - "00200041a8016a4120109b80808000410841c682c08000410d10bb80808000200041a8016a4120109c80808000410a" - "41d382c08000411410bb80808000200041003602e801200041a8016a4120200041e8016a4104109d80808000410441" - "b98ec08000410e10bb8080800041e782c08000410d2000412c6a4114109e80808000410041f482c08000410d10bb80" - "80800041e782c08000410d418183c080004108109f808080004100418983c08000410c10bb8080800041e782c08000" - "410d419583c080004108109f808080004100419d83c08000411110bb80808000417f4104108480808000417141ae83" - "c08000411e10bb80808000200041003602e801200041e8016a417f108480808000417141c78ec08000411e10bb8080" - "8000200041e8016a41026a41003a0000200041003b01e801200041e8016a4103108480808000417d41e58ec0800041" - "2410bb80808000200041003602e801200041e8016a418094ebdc03108480808000417341898fc08000412310bb8080" - "80004102108f80808000416f41cc83c08000411f10bb80808000417f20002802a001109280808000417141eb83c080" - "00411f10bb80808000200041e0006a417f1092808080004171418a84c08000411f10bb80808000200041e0006a4181" - "08109280808000417441a984c08000412010bb80808000200041e0006a418094ebdc036a220620002802a001109280" - "808000417341c984c08000411f10bb80808000200342003703002002420037030020014200370300200042003703e8" - "012000412c6a411420064108200041e8016a412010a080808000417341ac8fc08000411810bb808080002003420037" - "03002002420037030020014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010" - "a080808000417141c48fc08000411a10bb808080002003420037030020024200370300200142003703002000420037" - "03e80120064108200041e8016a4120410010a180808000417341de8fc08000411710bb808080002003420037030020" - "02420037030020014200370300200042003703e801200041e0006a20002802a001200041e8016a4120410010a18080" - "8000417141f58fc08000412010bb80808000200620002802a0014101108980808000417341e884c08000411810bb80" - "808000200041e0006a20002802a00141011089808080004171418085c08000411a10bb808080002003420037030020" - "02420037030020014200370300200042003703e801200620002802a001200041e8016a412010888080800041734195" - "90c08000411610bb80808000200342003703002002420037030020014200370300200042003703e801200041e0006a" - "20002802a001200041e8016a4120108880808000417141ab90c08000411810bb808080002003420037030020024200" - "37030020014200370300200042003703e8012000412c6a41142000412c6a4114200620002802a001200041e8016a41" - "2010a280808000417341c390c08000411c10bb80808000200342003703002002420037030020014200370300200042" - "003703e8012000412c6a41142000412c6a4114200041e0006a20002802a001200041e8016a412010a2808080004171" - "41df90c08000411e10bb80808000200342003703002002420037030020014200370300200042003703e8014194a1c0" - "80004114200620002802a001200041e8016a412010a380808000417341fd90c08000411910bb808080002003420037" - "03002002420037030020014200370300200042003703e8014194a1c080004114200041e0006a20002802a001200041" - "e8016a412010a3808080004171419691c08000411f10bb808080002003420037030020024200370300200142003703" - "00200042003703e8014194a1c080004114419a85c080004114200041e8016a412010a380808000417141b591c08000" - "412910bb80808000200342003703002002420037030020014200370300200042003703e80141ae85c0800041284194" - "a1c080004114200041e8016a412010a380808000417141de91c08000412510bb80808000200041c8016a41146a2000" - "412c6a41106a280100360200200041c8016a410c6a2000412c6a41086a2901003702002000200029012c3702cc0120" - "0041808080083602c801200041003b01e801200041c8016a41184194a1c080004114200041e8016a410210a3808080" - "004171418392c08000410e10bb80808000200620002802a001422a108180808000417341d685c08000411110bb8080" - "8000200041003b01e8014102200041e8016a4102108780808000416f419192c08000411b10bb80808000200041003b" - "01e8014102200041e8016a4102108a80808000416f41ac92c08000412b10bb80808000200041003b01e80141014102" - "200041e8016a4102108b80808000416f41d792c08000412310bb808080004102108f80808000416f41cc83c0800041" - "1f10bb808080004102109080808000416f41e785c08000412f10bb8080800041014102109180808000416f419686c0" - "8000412710bb8080800041b980c08000418108108680808000417441bd86c08000411f10bb8080800041b980c08000" - "41c100108680808000417441dc86c08000411a10bb80808000200041003b01e801200041e0006a418108200041e801" - "6a4102108c80808000417441fa92c08000412110bb80808000200041003b01e801200041e0006a418108200041e801" - "6a4102108d808080004174419b93c08000413110bb80808000200041003b01e8014101200041e0006a418108200041" - "e8016a4102108e80808000417441cc93c08000412910bb80808000200041e0006a418108109280808000417441f686" - "c08000412510bb80808000200041e0006a4181081093808080004174419b87c08000413510bb808080004101200041" - "e0006a418108109480808000417441d087c08000412d10bb80808000200041e0006a418120109580808000417441fd" - "87c08000411910bb8080800041e782c0800041810841a482c08000410b41af82c08000410e109780808000417441bd" - "82c08000410910bb8080800041e782c08000410d41a482c0800041810841af82c08000410e109780808000417441bd" - "82c08000410910bb8080800041e782c08000410d41a482c08000410b41af82c08000418108109780808000417441bd" - "82c08000410910bb80808000200041003b01e801200041e0006a418108200041e8016a4102109680808000417441f5" - "93c08000412110bb80808000200041003b01e8014194a1c080004181084194a1c080004114200041e8016a410210a3" - "808080004174419694c08000411810bb80808000200041003b01e8012000412c6a41142000412c6a4114200041e000" - "6a418108200041e8016a410210a480808000417441ae94c08000411f10bb80808000200041003b01e801200041c801" - "6a4181082000412c6a4114200041e8016a410210a580808000417441cd94c08000412210bb8080800041e782c08000" - "410d200620002802a00141001080808080004173419688c08000410f10bb80808000200042d487b6f4c7d4b1c00037" - "00e00141e782c08000410d200041e0016a418094ebdc036a2204410810a680808000417341a588c08000411c10bb80" - "80800041e782c08000410d200620002802a001109f80808000417341c188c08000411610bb80808000200441082000" - "41e0016a410810a780808000417341d788c08000411810bb80808000200041e0016a41082004410810a78080800041" - "7341ef88c08000411810bb80808000200041003b01e80120044108200041e0016a4108200041e8016a4102410010a8" - "80808000417341ef94c08000411410bb80808000200041003b01e801200041e0016a410820044108200041e8016a41" - "02410010a8808080004173418395c08000411410bb80808000200041003b01e80120044108200041e0016a41082000" - "41e8016a4102410010a9808080004173419795c08000411910bb80808000200041003b01e801200041e0016a410820" - "044108200041e8016a4102410010a980808000417341b095c08000411910bb80808000200041003b01e80120044108" - "200041e0016a4108200041e8016a4102410010aa80808000417341c995c08000411910bb80808000200041003b01e8" - "01200041e0016a410820044108200041e8016a4102410010aa80808000417341e295c08000411910bb808080002000" - "41003b01e80120044108200041e0016a4108200041e8016a4102410010ab80808000417341fb95c08000411710bb80" - "808000200041003b01e801200041e0016a410820044108200041e8016a4102410010ab808080004173419296c08000" - "411710bb80808000200041003b01e801200441084103200041e8016a4102410010ac80808000417341a996c0800041" - "1410bb80808000200041003b01e801200441084103200041e8016a4102410010ad80808000417341bd96c080004113" - "10bb80808000200342003703002002420037030020014200370300200042003703e8012000412c6a41142000412c6a" - "4114200041e8016a412010ae80808000417141d096c08000411f10bb80808000200342003703002002420037030020" - "014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010af80808000417141ef96" - "c08000412510bb80808000200342003703002002420037030020014200370300200042003703e8012000412c6a4114" - "2000412c6a4114200041e8016a412010b0808080004171419497c08000412210bb8080800020034200370300200242" - "0037030020014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010b180808000" - "417141b697c08000411e10bb80808000200342003703002002420037030020014200370300200042003703e8012000" - "412c6a41142000412c6a4114200041e8016a412010b280808000417141d497c08000411f10bb808080002003420037" - "03002002420037030020014200370300200042003703e8012000412c6a41142000412c6a41142000412c6a41142000" - "41e8016a412010b380808000417141f397c08000412010bb8080800020034200370300200242003703002001420037" - "0300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010b4808080004171419398c0800041" - "2c10bb80808000200342003703002002420037030020014200370300200042003703e8012000412c6a41142000412c" - "6a4114200041e8016a412010b580808000417141bf98c08000411f10bb808080002003420037030020024200370300" - "20014200370300200042003703e8012000412c6a41142000412c6a4114200041e8016a412010b680808000417141de" - "98c08000411e10bb80808000200041e0006a20002802a00141001089808080004171418789c08000412310bb808080" - "00200041003b01e8012000412c6a4114200041e0006a20002802a001200041e8016a4102109880808000417141fc98" - "c08000411a10bb80808000200041003b01e801200041e0006a20002802a001200041e8016a41021099808080004171" - "419699c08000412110bb80808000200041003b01e801200041e0006a20002802a001200041e8016a4102109a808080" - "00417141b799c08000412010bb80808000200041e0006a20002802a001109b80808000417141aa89c08000412010bb" - "80808000200041e0006a20002802a001109c80808000417141ca89c08000412710bb80808000200041003602e80120" - "0041e0006a20002802a001200041e8016a4104109d80808000417141d799c08000412110bb80808000200041003b01" - "e801200041e0006a20002802a001200041e8016a4102108880808000417141f899c08000412410bb80808000200041" - "808080083602e801200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210a080" - "8080004171419c9ac08000412210bb80808000200041003b018e02200041e0006a20002802a00122012000412c6a41" - "14200041e0006a20012000418e026a410210a480808000417141be9ac08000412810bb80808000200041003b018e02" - "2000412c6a4114200041e0006a20002802a0012201200041e0006a20012000418e026a410210a480808000417141e6" - "9ac08000412810bb80808000200041003b018e02200041e0006a20002802a0012000412c6a41142000418e026a4102" - "10b7808080004171418e9bc08000412610bb80808000200041003b018e022000412c6a4114200041e0006a20002802" - "a0012000418e026a410210b780808000417141b49bc08000412610bb80808000200041003b018e02200041e0006a20" - "002802a0012000412c6a41142000418e026a410210b880808000417141da9bc08000412d10bb80808000200041003b" - "018e022000412c6a4114200041e0006a20002802a0012000418e026a410210b880808000417141879cc08000412d10" - "bb80808000200041003b018e02200041e0006a20002802a0012000418e026a410210b980808000417141b49cc08000" - "412010bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210ae80" - "808000417141d49cc08000412310bb80808000200041003b018e02200041e0006a20002802a0012000412c6a411441" - "9a85c0800041142000418e026a410210a280808000417141f79cc08000412210bb80808000200041003b018e022000" - "412c6a4114200041e0006a20002802a001419a85c0800041142000418e026a410210a280808000417141999dc08000" - "412210bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210af80" - "808000417141bb9dc08000412910bb80808000200041003b018e02200041c8016a4118200041e0006a20002802a001" - "2000418e026a410210a580808000417141e49dc08000412410bb80808000200041003b018e02200041e0006a200028" - "02a001200041e8016a41042000418e026a410210b080808000417141889ec08000412610bb80808000200041003b01" - "8e02200041e0006a20002802a001200041e8016a41042000418e026a410210b180808000417141ae9ec08000412210" - "bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210b280808000" - "417141d09ec08000412310bb80808000200041003b018e02200041e0006a20002802a0012000412c6a4114200041e8" - "016a41042000418e026a410210b380808000417141f39ec08000412510bb80808000200041003b018e022000412c6a" - "4114200041e0006a20002802a001200041e8016a41042000418e026a410210b380808000417141989fc08000412510" - "bb80808000200041003b018e02200041e0006a20002802a001200041e8016a41042000418e026a410210b480808000" - "417141bd9fc08000413010bb80808000200041003b018e02200041e0006a20002802a0012000418e026a410210ba80" - "808000417141ed9fc08000412410bb80808000200041003b018e02200041e0006a20002802a001200041e8016a4104" - "2000418e026a410210b58080800041714191a0c08000412310bb80808000200041003b018e02200041e0006a200028" - "02a001200041e8016a41042000418e026a410210b680808000417141b4a0c08000412210bb80808000200041003b01" - "8e02200041e0006a20002802a00141f189c0800041202000418e026a4102109880808000417141d6a0c08000411d10" - "bb8080800041e782c08000410d200041e0006a20002802a001109e80808000417141918ac08000412310bb80808000" - "41e796abdd03410d41f189c0800041204100108080808000417341b48ac08000411010bb8080800041e796abdd0341" - "0d200041e0016a410810a680808000417341c48ac08000411d10bb8080800041e796abdd03410d2000412c6a411410" - "9e80808000417341e18ac08000411810bb8080800041e796abdd03410d419583c080004108109f80808000417341f9" - "8ac08000411710bb80808000200041e0006a20002802a001200041e0006a4181084100108080808000417441908bc0" - "8000410e10bb80808000200041e0006a41810842011081808080004174419e8bc08000411210bb8080800041e782c0" - "8000418108200041e0016a410810a680808000417441b08bc08000411b10bb8080800041e782c08000418108200041" - "2c6a4114109e80808000417441cb8bc08000411610bb8080800041e782c08000418108419583c080004108109f8080" - "8000417441e18bc08000411510bb8080800041e782c08000410d200041e0006a20002802a001109f80808000417141" - "f68bc08000411910bb80808000200041003b018e02200041e0006a20002802a0012000412c6a41142000418e026a41" - "0210a580808000417141f3a0c08000412110bb8080800041e782c08000410d200041e0006a20002802a00141021080" - "808080004171418f8cc08000411410bb80808000410141002000412c6a4114109e80808000410041a38cc08000411a" - "10bb8080800020004190026a24808080800041010f0b418080c08000410b2004417f2004417f481bac108180808000" - "1a10bc80808000000b418080c08000410b2001417f2001417f481bac1081808080001a10bc80808000000b0bb22101" - "00418080c0000ba8216572726f725f636f64653d54455354204641494c45442424242424205354415254494e472057" - "41534d20455845435554494f4e202424242424746573745f616d656e646d656e74616d656e646d656e745f656e6162" - "6c656463616368655f6c65646765725f6f626a6765745f74785f61727261795f6c656e6765745f63757272656e745f" - "6c65646765725f6f626a5f61727261795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e676574" - "5f74785f6e65737465645f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a5f6e657374" - "65645f61727261795f6c656e6765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e75706461" - "74655f6461746174657374206d65737361676574657374207075626b657974657374207369676e6174757265636865" - "636b5f7369676765745f6e66745f666c6167736765745f6e66745f7472616e736665725f66656574657374696e6720" - "747261636574726163655f6163636f756e74400000000000005f74726163655f616d6f756e74400000000000000074" - "726163655f616d6f756e745f7a65726f6765745f706172656e745f6c65646765725f686173685f6e65675f70747267" - "65745f74785f61727261795f6c656e5f696e76616c69645f736669656c646765745f74785f6e65737465645f617272" - "61795f6c656e5f6e65675f7074726765745f74785f6e65737465645f61727261795f6c656e5f6e65675f6c656e6765" - "745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6c6f6e676765745f74785f6e65737465645f617272" - "61795f6c656e5f7074725f6f6f6263616368655f6c65646765725f6f626a5f7074725f6f6f6263616368655f6c6564" - "6765725f6f626a5f77726f6e675f6c656e555344303030303030303030303030303030303000000000000000000000" - "00000000000000000000000000000000000000000000000000000000000074726163655f6e756d5f6f6f625f737472" - "6765745f63757272656e745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c64" - "6765745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c64616d656e646d656e" - "745f656e61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61626c65645f746f6f5f6c6f" - "6e676765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f63757272" - "656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765" - "745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c69636575706461" - "74655f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f736c69636574726163655f6f70617175" - "655f666c6f61745f6f6f625f736c69636574726163655f616d6f756e745f6f6f625f736c696365666c6f61745f636f" - "6d706172655f6f6f625f736c69636531666c6f61745f636f6d706172655f6f6f625f736c6963653263616368655f6c" - "65646765725f6f626a5f77726f6e675f73697a655f75696e743235366765745f6e66745f666c6167735f77726f6e67" - "5f73697a655f75696e743235366765745f6e66745f7472616e736665725f6665655f77726f6e675f73697a655f7569" - "6e74323536303030303030303030303030303030303030303030303030303030303030303174726163655f6163636f" - "756e745f77726f6e675f73697a655f6163636f756e745f696474726163655f6f6f625f737472696e6774726163655f" - "6f70617175655f666c6f61745f6f6f625f737472696e6774726163655f6163636f756e745f6f6f625f737472696e67" - "74726163655f616d6f756e745f6f6f625f737472696e6774726163655f746f6f5f6c6f6e6774726163655f6e756d5f" - "746f6f5f6c6f6e6774726163655f6f70617175655f666c6f61745f746f6f5f6c6f6e6774726163655f6163636f756e" - "745f746f6f5f6c6f6e6774726163655f616d6f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f77726f" - "6e675f6c656e67746874726163655f696e76616c69645f61735f68657874726163655f6163636f756e745f63686563" - "6b5f646573796e636765745f6c65646765725f73716e6765745f706172656e745f6c65646765725f74696d65676574" - "5f706172656e745f6c65646765725f686173686765745f626173655f6665656765745f63757272656e745f6c656467" - "65725f6f626a5f6669656c646765745f6c65646765725f6f626a5f6669656c646765745f74785f6e65737465645f66" - "69656c646765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c646765745f6c656467" - "65725f6f626a5f6e65737465645f6669656c64636f6d707574655f7368613531325f68616c666765745f6e66746765" - "745f6e66745f6973737565726765745f6e66745f7461786f6e6765745f6e66745f73657269616c6765745f70617265" - "6e745f6c65646765725f686173685f6e65675f6c656e6765745f706172656e745f6c65646765725f686173685f6275" - "665f746f6f5f736d616c6c6765745f706172656e745f6c65646765725f686173685f6c656e5f746f6f5f6c6f6e6763" - "6865636b5f6b65796c65745f6f6f625f6c656e5f753332636865636b5f6b65796c65745f77726f6e675f6c656e5f75" - "3332666c6f61745f66726f6d5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f" - "6c656e5f75696e7436346163636f756e745f6b65796c65745f6c656e5f6f6f626163636f756e745f6b65796c65745f" - "77726f6e675f6c656e6c696e655f6b65796c65745f6c656e5f6f6f625f63757272656e63796c696e655f6b65796c65" - "745f77726f6e675f6c656e5f63757272656e6379616d6d5f6b65796c65745f6c656e5f6f6f625f617373657432616d" - "6d5f6b65796c65745f6c656e5f77726f6e675f6c656e5f617373657432616d6d5f6b65796c65745f6c656e5f77726f" - "6e675f6e6f6e5f7872705f63757272656e63795f6c656e616d6d5f6b65796c65745f6c656e5f77726f6e675f787270" - "5f63757272656e63795f6c656e616d6d5f6b65796c65745f6d70746765745f74785f6669656c645f696e76616c6964" - "5f736669656c646765745f63757272656e745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669" - "656c646765745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669656c646765745f74785f6e65" - "737465645f6669656c645f746f6f5f6269675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f" - "6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f6c65646765725f6f626a5f6e6573746564" - "5f6669656c645f746f6f5f6269675f736c696365636f6d707574655f7368613531325f68616c665f746f6f5f626967" - "5f736c696365616d6d5f6b65796c65745f746f6f5f6269675f736c69636563726564656e7469616c5f6b65796c6574" - "5f746f6f5f6269675f736c6963656d70746f6b656e5f6b65796c65745f746f6f5f6269675f736c6963655f6d707469" - "64666c6f61745f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f736c69636532666c6f61745f" - "73756274726163745f6f6f625f736c69636531666c6f61745f73756274726163745f6f6f625f736c69636532666c6f" - "61745f6d756c7469706c795f6f6f625f736c69636531666c6f61745f6d756c7469706c795f6f6f625f736c69636532" - "666c6f61745f6469766964655f6f6f625f736c69636531666c6f61745f6469766964655f6f6f625f736c6963653266" - "6c6f61745f726f6f745f6f6f625f736c696365666c6f61745f706f775f6f6f625f736c696365657363726f775f6b65" - "796c65745f77726f6e675f73697a655f75696e7433326d70745f69737375616e63655f6b65796c65745f77726f6e67" - "5f73697a655f75696e7433326e66745f6f666665725f6b65796c65745f77726f6e675f73697a655f75696e7433326f" - "666665725f6b65796c65745f77726f6e675f73697a655f75696e7433326f7261636c655f6b65796c65745f77726f6e" - "675f73697a655f75696e7433327061796368616e5f6b65796c65745f77726f6e675f73697a655f75696e7433327065" - "726d697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a655f75696e7433327469636b65" - "745f6b65796c65745f77726f6e675f73697a655f75696e7433327661756c745f6b65796c65745f77726f6e675f7369" - "7a655f75696e7433326765745f6e66745f77726f6e675f73697a655f75696e743235366765745f6e66745f69737375" - "65725f77726f6e675f73697a655f75696e743235366765745f6e66745f7461786f6e5f77726f6e675f73697a655f75" - "696e743235366765745f6e66745f73657269616c5f77726f6e675f73697a655f75696e743235366163636f756e745f" - "6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964636865636b5f6b65796c65745f77726f6e675f" - "73697a655f6163636f756e745f696463726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f616363" - "6f756e745f69643163726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964" - "3264656c65676174655f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69643164656c6567617465" - "5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964326465706f7369745f707265617574685f6b" - "65796c65745f77726f6e675f73697a655f6163636f756e745f6964316465706f7369745f707265617574685f6b6579" - "6c65745f77726f6e675f73697a655f6163636f756e745f6964326469645f6b65796c65745f77726f6e675f73697a65" - "5f6163636f756e745f6964657363726f775f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646c" - "696e655f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964316c696e655f6b65796c65745f7772" - "6f6e675f73697a655f6163636f756e745f6964326d70745f69737375616e63655f6b65796c65745f77726f6e675f73" - "697a655f6163636f756e745f69646d70746f6b656e5f6b65796c65745f77726f6e675f73697a655f6163636f756e74" - "5f69646e66745f6f666665725f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646f666665725f" - "6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646f7261636c655f6b65796c65745f77726f6e67" - "5f73697a655f6163636f756e745f69647061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f75" - "6e745f6964317061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964327065726d" - "697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964736967" - "6e6572735f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69647469636b65745f6b65796c65745f" - "77726f6e675f73697a655f6163636f756e745f69647661756c745f6b65796c65745f77726f6e675f73697a655f6163" - "636f756e745f69646765745f6e66745f77726f6e675f73697a655f6163636f756e745f69646d70746f6b656e5f6b65" - "796c65745f6d707469645f77726f6e675f6c656e677468000000000000000000000000000000000000000000ea2a04" - "6e616d65001312636f6465636f765f74657374732e7761736d01ad2a3e004c5f5a4e31367872706c5f7761736d5f73" - "74646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7335747261636531376834623431" - "6663626133633836323862394501505f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f7374" - "5f646566696e65645f66756e6374696f6e733974726163655f6e756d31376836346562613963306665666435626361" - "4502565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e" - "6374696f6e7331346765745f6c65646765725f73716e3137686633313635393261626131346636336345035e5f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "32326765745f706172656e745f6c65646765725f74696d653137686662373635613064613335336631323445045e5f" - "5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f" - "6e7332326765745f706172656e745f6c65646765725f68617368313768656335313634326538353530626434354505" - "545f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374" - "696f6e7331326765745f626173655f666565313768386466356664653831663063326161614506595f5a4e31367872" - "706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733137616d" - "656e646d656e745f656e61626c6564313768363461346434383031333165333235354507545f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331326765745f74" - "785f6669656c64313768373037373835623434663266363639304508565f5a4e31367872706c5f7761736d5f737464" - "6c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331346163636f756e745f6b65796c65" - "74313768616538373566373066646637336635354509585f5a4e31367872706c5f7761736d5f7374646c696234686f" - "73743232686f73745f646566696e65645f66756e6374696f6e73313663616368655f6c65646765725f6f626a313768" - "65313634313265303433666362643861450a645f5a4e31367872706c5f7761736d5f7374646c696234686f73743232" - "686f73745f646566696e65645f66756e6374696f6e7332386765745f63757272656e745f6c65646765725f6f626a5f" - "6669656c6431376833636338656464626163373139323234450b5c5f5a4e31367872706c5f7761736d5f7374646c69" - "6234686f73743232686f73745f646566696e65645f66756e6374696f6e7332306765745f6c65646765725f6f626a5f" - "6669656c6431376830626137333839346464356334633338450c5b5f5a4e31367872706c5f7761736d5f7374646c69" - "6234686f73743232686f73745f646566696e65645f66756e6374696f6e7331396765745f74785f6e65737465645f66" - "69656c6431376864353730336462646161303438633238450d6b5f5a4e31367872706c5f7761736d5f7374646c6962" - "34686f73743232686f73745f646566696e65645f66756e6374696f6e7333356765745f63757272656e745f6c656467" - "65725f6f626a5f6e65737465645f6669656c6431376864336565353939316537306235386130450e635f5a4e313678" - "72706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73323767" - "65745f6c65646765725f6f626a5f6e65737465645f6669656c6431376837363831323438326638333433326235450f" - "585f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374" - "696f6e7331366765745f74785f61727261795f6c656e313768663061333731366132373864633663614510685f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "33326765745f63757272656e745f6c65646765725f6f626a5f61727261795f6c656e31376863396662303730623337" - "6461323866314511605f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e" - "65645f66756e6374696f6e7332346765745f6c65646765725f6f626a5f61727261795f6c656e313768383061616437" - "6664343136616664636545125f5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f64" - "6566696e65645f66756e6374696f6e7332336765745f74785f6e65737465645f61727261795f6c656e313768353234" - "6130613261303566656465376545136f5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73" - "745f646566696e65645f66756e6374696f6e7333396765745f63757272656e745f6c65646765725f6f626a5f6e6573" - "7465645f61727261795f6c656e313768353139623331663261303939353035644514675f5a4e31367872706c5f7761" - "736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7333316765745f6c6564" - "6765725f6f626a5f6e65737465645f61727261795f6c656e313768316633646533393861653331306533394515535f" - "5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f" - "6e7331317570646174655f646174613137683662383232316465393861626630393745165b5f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733139636f6d7075" - "74655f7368613531325f68616c66313768303565356531613863653833646338364517505f5a4e31367872706c5f77" - "61736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7339636865636b5f73" - "69673137686532323034393665326136363839373945184e5f5a4e31367872706c5f7761736d5f7374646c69623468" - "6f73743232686f73745f646566696e65645f66756e6374696f6e73376765745f6e6674313768643131643234633637" - "393530306236354519565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f64656669" - "6e65645f66756e6374696f6e7331346765745f6e66745f697373756572313768316137353534643533316537636564" - "65451a555f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f6675" - "6e6374696f6e7331336765745f6e66745f7461786f6e31376830636664373337653333393261616434451b555f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "31336765745f6e66745f666c61677331376863336437633739326262303834353636451c5c5f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7332306765745f6e" - "66745f7472616e736665725f66656531376834343230383233633838623738666630451d565f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331346765745f6e" - "66745f73657269616c31376834326337303332393835666339343130451e555f5a4e31367872706c5f7761736d5f73" - "74646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73313374726163655f6163636f75" - "6e7431376831393931636463666337663234366131451f545f5a4e31367872706c5f7761736d5f7374646c69623468" - "6f73743232686f73745f646566696e65645f66756e6374696f6e73313274726163655f616d6f756e74313768313231" - "643430646438643439623064344520545f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73" - "745f646566696e65645f66756e6374696f6e733132636865636b5f6b65796c65743137686135376564303837636165" - "39393136384521575f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65" - "645f66756e6374696f6e733135666c6f61745f66726f6d5f75696e7431376866363961343162303366323839346262" - "4522485f5a4e3133636f6465636f765f74657374733139686f73745f62696e64696e67735f6c6f6f736531316c696e" - "655f6b65796c6574313768336166313834353162626362653062384523525f5a4e31367872706c5f7761736d5f7374" - "646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733130616d6d5f6b65796c65743137" - "68353565333961626264346262323336324524595f5a4e31367872706c5f7761736d5f7374646c696234686f737432" - "32686f73745f646566696e65645f66756e6374696f6e73313763726564656e7469616c5f6b65796c65743137686365" - "61323561633261373035393863664525565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f" - "73745f646566696e65645f66756e6374696f6e7331346d70746f6b656e5f6b65796c65743137686231363964636462" - "623234623033663445265a5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566" - "696e65645f66756e6374696f6e73313874726163655f6f70617175655f666c6f617431376839313533356463633336" - "3764323938334527555f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e" - "65645f66756e6374696f6e733133666c6f61745f636f6d706172653137683134653662643136643762313235373745" - "28505f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e63" - "74696f6e7339666c6f61745f616464313768316162653839663139373139373431644529565f5a4e31367872706c5f" - "7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733134666c6f6174" - "5f737562747261637431376830316661353561663438653963663837452a565f5a4e31367872706c5f7761736d5f73" - "74646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733134666c6f61745f6d756c7469" - "706c7931376836633665366239643935636234643561452b545f5a4e31367872706c5f7761736d5f7374646c696234" - "686f73743232686f73745f646566696e65645f66756e6374696f6e733132666c6f61745f6469766964653137686132" - "3932613963396261323535623238452c525f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f" - "73745f646566696e65645f66756e6374696f6e733130666c6f61745f726f6f74313768393330313037316165376337" - "33393261452d505f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e6564" - "5f66756e6374696f6e7339666c6f61745f706f7731376830326133343235636131653666656531452e555f5a4e3136" - "7872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733133" - "657363726f775f6b65796c657431376830326161316365326263346330373539452f5b5f5a4e31367872706c5f7761" - "736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331396d70745f697373" - "75616e63655f6b65796c6574313768666539386161613762313632343765314530585f5a4e31367872706c5f776173" - "6d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331366e66745f6f666665" - "725f6b65796c6574313768353930313839656564373166613435364531545f5a4e31367872706c5f7761736d5f7374" - "646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331326f666665725f6b65796c6574" - "313768353830376537393161346361613163634532555f5a4e31367872706c5f7761736d5f7374646c696234686f73" - "743232686f73745f646566696e65645f66756e6374696f6e7331336f7261636c655f6b65796c657431376866343831" - "3166343862643266326530344533565f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f7374" - "5f646566696e65645f66756e6374696f6e7331347061796368616e5f6b65796c657431376837386265393931643265" - "3436613339634534625f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e" - "65645f66756e6374696f6e7332367065726d697373696f6e65645f646f6d61696e5f6b65796c657431376837663334" - "3362646335656663326630624535555f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f7374" - "5f646566696e65645f66756e6374696f6e7331337469636b65745f6b65796c65743137686435666532636466326537" - "33393962374536545f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65" - "645f66756e6374696f6e7331327661756c745f6b65796c657431376830386639346132656161383335373835453757" - "5f5a4e31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e637469" - "6f6e73313564656c65676174655f6b65796c65743137686162396339646561393364663265636245385e5f5a4e3136" - "7872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e733232" - "6465706f7369745f707265617574685f6b65796c6574313768313962303532623237653238313139384539525f5a4e" - "31367872706c5f7761736d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e73" - "31306469645f6b65796c657431376838323331376636646338353661383533453a565f5a4e31367872706c5f776173" - "6d5f7374646c696234686f73743232686f73745f646566696e65645f66756e6374696f6e7331347369676e6572735f" - "6b65796c657431376833626636666236363561643432333563453b345f5a4e3133636f6465636f765f746573747331" - "32636865636b5f726573756c7431376830613536316462313034376266626561453c305f5a4e34636f72653970616e" - "69636b696e673970616e69635f666d7431376864333035326133363632643530633935453d0666696e697368071201" - "000f5f5f737461636b5f706f696e746572090a0100072e726f64617461004d0970726f64756365727302086c616e67" - "75616765010452757374000c70726f6365737365642d6279010572757374631d312e38392e30202832393438333838" - "336520323032352d30382d3034290094010f7461726765745f6665617475726573082b0b62756c6b2d6d656d6f7279" - "2b0f62756c6b2d6d656d6f72792d6f70742b1663616c6c2d696e6469726563742d6f7665726c6f6e672b0a6d756c74" - "6976616c75652b0f6d757461626c652d676c6f62616c732b136e6f6e7472617070696e672d6670746f696e742b0f72" - "65666572656e63652d74797065732b087369676e2d657874"; + "0061736d0100000001570b60067f7f7f7f7f7f017f60047f7f7f7f017f60027f7f017f60037f7f7f017f60077f7f7f" + "7f7f7f7f017f60057f7f7f7f7f017f60087f7f7f7f7f7f7f7f017f60017f017f60037f7f7e017f60047f7f7f7f0060" + "00017f02c60a3b08686f73745f6c6962057472616365000508686f73745f6c69620974726163655f6e756d00080868" + "6f73745f6c69620a6c6467725f696e646578000208686f73745f6c696210706172656e745f6c6467725f74696d6500" + "0208686f73745f6c696210706172656e745f6c6467725f68617368000208686f73745f6c696208626173655f666565" + "000208686f73745f6c696211616d656e646d656e745f656e61626c6564000208686f73745f6c69620874785f666965" + "6c64000308686f73745f6c69620e6163636f756e74726f6f745f6964000108686f73745f6c69620863616368655f6c" + "65000308686f73745f6c69620d686f6d655f6c655f6669656c64000308686f73745f6c6962086c655f6669656c6400" + "0108686f73745f6c69620874785f696e6e6572000108686f73745f6c69620d686f6d655f6c655f696e6e6572000108" + "686f73745f6c6962086c655f696e6e6572000508686f73745f6c69620a74785f6172725f6c656e000708686f73745f" + "6c69620f686f6d655f6c655f6172725f6c656e000708686f73745f6c69620a6c655f6172725f6c656e000208686f73" + "745f6c69621074785f696e6e65725f6172725f6c656e000208686f73745f6c696215686f6d655f6c655f696e6e6572" + "5f6172725f6c656e000208686f73745f6c6962106c655f696e6e65725f6172725f6c656e000308686f73745f6c6962" + "087365745f64617461000208686f73745f6c69620b7368613531325f68616c66000108686f73745f6c696209636865" + "636b5f736967000008686f73745f6c6962076e66745f757269000008686f73745f6c69620a6e66745f697373756572" + "000108686f73745f6c6962096e66745f7461786f6e000108686f73745f6c6962096e66745f666c616773000208686f" + "73745f6c69620c6e66745f786665725f666565000208686f73745f6c69620a6e66745f73657269616c000108686f73" + "745f6c69620a74726163655f61636374000108686f73745f6c69620974726163655f616d74000108686f73745f6c69" + "6208636865636b5f6964000008686f73745f6c69620f666c6f61745f66726f6d5f75696e74000508686f73745f6c69" + "620c74727573746c696e655f6964000608686f73745f6c696206616d6d5f6964000008686f73745f6c69620d637265" + "64656e7469616c5f6964000608686f73745f6c69620a6d70746f6b656e5f6964000008686f73745f6c69620c747261" + "63655f78666c6f6174000108686f73745f6c696209666c6f61745f636d70000108686f73745f6c696209666c6f6174" + "5f616464000408686f73745f6c696209666c6f61745f737562000408686f73745f6c69620a666c6f61745f6d756c74" + "000408686f73745f6c696209666c6f61745f646976000408686f73745f6c69620a666c6f61745f726f6f7400000868" + "6f73745f6c696209666c6f61745f706f77000008686f73745f6c696209657363726f775f6964000008686f73745f6c" + "69620f6d70745f69737375616e63655f6964000008686f73745f6c69620c6e66745f6f666665725f6964000008686f" + "73745f6c6962086f666665725f6964000008686f73745f6c6962096f7261636c655f6964000008686f73745f6c6962" + "0a7061796368616e5f6964000608686f73745f6c6962167065726d697373696f6e65645f646f6d61696e5f69640000" + "08686f73745f6c6962097469636b65745f6964000008686f73745f6c6962087661756c745f6964000008686f73745f" + "6c69620b64656c65676174655f6964000008686f73745f6c6962126465706f7369745f707265617574685f69640000" + "08686f73745f6c6962066469645f6964000108686f73745f6c69620a7369676e6572735f69640001030302090a0503" + "0100110619037f01418080c0000b7f0041cf9bc0000b7f0041d09bc0000b072e04066d656d6f727902000666696e69" + "7368003c0a5f5f646174615f656e6403010b5f5f686561705f6261736503020a8c2f02460002402000200147044020" + "02200341014100410010001a20004100480d01418b80c000410b2000ad1001000b200220032000ac10011a0f0b418b" + "80c000410b2000ac1001000bc22e020b7f017e23004190026b22002400419680c000412341014100410010001a2000" + "4100360260200041e0006a220241041002410441888ac000410a103b20004100360260200241041003410441928ac0" + "004110103b200041f8006a22054200370300200041f0006a22014200370300200041e8006a22064200370300200042" + "00370360200241201004412041a28ac0004110103b20004100360260200241041005410441b28ac0004108103b2000" + "41106a2208428182848890a0c08001370300200041186a2209428182848890a0c08001370300200041206a220a4281" + "82848890a0c080013703002000428182848890a0c0800137030841b980c000410e1006410141c780c0004111103b20" + "0041086a41201006410141c780c0004111103b418180202002411410072203411446044002402000412e6a200041e2" + "006a2d00003a0000200020002900673703e8012000200041ec006a2900003700ed01200020002f00603b012c200020" + "002903e8013703a801200020002900ed013700ad012000200028006336002f200041386a20002900ad013700002000" + "20002903a801370033200542003703002001420037030020064200370300200042003703602000412c6a2205411420" + "024120100822034120470d00200041c2006a20002d00623a0000200041f0016a2207200041ef006a290000220b3703" + "00200041cf006a200b370000200041d7006a200041f7006a290000370000200041df006a200041ff006a2d00003a00" + "00200020002f01603b01402000200028006336004320002000290067370047200041406b412041001009410141d880" + "c0004108103b2001410036020020064200370300200042003703604181802020024114100a411441ba8ac000410d10" + "3b20014100360200200642003703002000420037036041014181802020024114100b411441c78ac0004108103b0240" + "4100200041e4006a22046b410371220320046a220120044d0d0020030440200321060340200441003a000020044101" + "6a2104200641016b22060d000b0b200341016b4107490d000340200441003a0000200441076a41003a000020044106" + "6a41003a0000200441056a41003a0000200441046a41003a0000200441036a41003a0000200441026a41003a000020" + "0441016a41003a0000200441086a22042001470d000b0b2001413c20036b2203417c716a220420014b044003402001" + "4100360200200141046a22012004490d000b0b024020042003410371220320046a22064f0d00200322010440034020" + "0441003a0000200441016a2104200141016b22010d000b0b200341016b4107490d000340200441003a000020044107" + "6a41003a0000200441066a41003a0000200441056a41003a0000200441046a41003a0000200441036a41003a000020" + "0441026a41003a0000200441016a41003a0000200441086a22042006470d000b0b200041043602a001200041818020" + "360260200041f8016a2203410036020020074200370300200042003703e80120024104200041e8016a22014114100c" + "411441cf8ac0004108103b2003410036020020074200370300200042003703e801200220002802a00120014114100d" + "411441d78ac000410d103b2003410036020020074200370300200042003703e8014101200220002802a00120014114" + "100e411441e48ac0004108103b4189803c100f412041e080c000410a103b4189803c1010412041ea80c000410f103b" + "41014189803c1011412041f980c000410a103b200220002802a00110124120418381c0004110103b200220002802a0" + "0110134120419381c0004115103b4101200220002802a0011014412041a881c0004110103b200541141015411441b8" + "81c0004108103b20004180026a220642003703002003420037030020074200370300200042003703e8012002200028" + "02a001200141201016412041ec8ac000410b103b41c081c000410c41cc81c000410b41d781c000410e1017410141e5" + "81c0004109103b200041c0016a200a290300370300200041b8016a2009290300370300200041b0016a200829030037" + "0300200020002903083703a801200341003b010020074200370300200042003703e80120054114200041a8016a2204" + "4120200141121018411241f78ac0004107103b2003410036020020074200370300200042003703e801200441202001" + "41141019411441fe8ac000410a103b200041003602e8012004412020014104101a410441888bc0004109103b200441" + "20101b410841ee81c0004109103b20044120101c410a41f781c000410c103b200041003602e8012004412020014104" + "101d410441918bc000410a103b418382c000410d20054114101e4100419082c000410a103b418382c000410d419a82" + "c0004108101f410041a282c0004109103b418382c000410d41ab82c0004108101f410041b382c000410e103b417f41" + "041004417141c182c0004118103b200041003602e8012001417f10044171419b8bc0004118103b200041ea016a4100" + "3a0000200041003b01e801200141031004417d41b38bc000411e103b200041003602e8012001418094ebdc03100441" + "7341d18bc000411d103b4102100f416f41d982c0004119103b417f20002802a0011012417141f282c0004118103b20" + "02417f10124171418a83c0004118103b20024181081012417441a283c0004119103b200041e094ebdc036a22082000" + "2802a0011012417341bb83c0004118103b200642003703002003420037030020074200370300200042003703e80120" + "05411420084108200141201020417341ee8bc0004114103b2006420037030020034200370300200742003703002000" + "42003703e8012005411420054114200141201020417141828cc0004116103b20064200370300200342003703002007" + "4200370300200042003703e801200841082001412041001021417341988cc0004117103b2006420037030020034200" + "37030020074200370300200042003703e801200220002802a0012001412041001021417141af8cc0004120103b2008" + "20002802a00141011009417341d383c0004110103b200220002802a00141011009417141e383c0004112103b200642" + "003703002003420037030020074200370300200042003703e801200820002802a001200141201008417341cf8cc000" + "4116103b200642003703002003420037030020074200370300200042003703e801200220002802a001200141201008" + "417141e58cc0004118103b200642003703002003420037030020074200370300200042003703e80120054114200541" + "14200820002802a001200141201022417341fd8cc000411d103b200642003703002003420037030020074200370300" + "200042003703e8012005411420054114200220002802a0012001412010224171419a8dc000411f103b200642003703" + "002003420037030020074200370300200042003703e80141bb9bc0004114200820002802a001200141201023417341" + "b98dc0004115103b200642003703002003420037030020074200370300200042003703e80141bb9bc0004114200220" + "002802a001200141201023417141ce8dc000411b103b20064200370300200342003703002007420037030020004200" + "3703e80141bb9bc000411441f583c0004114200141201023417141e98dc0004125103b200642003703002003420037" + "030020074200370300200042003703e801418984c000412841bb9bc00041142001412010234171418e8ec000412110" + "3b200041dc016a2000413c6a280100360200200041d4016a200041346a2901003702002000200029012c3702cc0120" + "0041808080083602c801200041003b01e801200041c8016a2209411841bb9bc0004114200141021023417141af8ec0" + "00410a103b200820002802a001422a1001417341b184c0004111103b200041003b01e8014102200141021007416f41" + "b98ec0004117103b200041003b01e801410220014102100a416f41d08ec000411c103b200041003b01e80141014102" + "20014102100b416f41ec8ec0004117103b4102100f416f41d982c0004119103b41021010416f41c284c000411e103b" + "410141021011416f41e084c0004119103b41b980c0004181081006417441f984c000411f103b41b980c00041c10010" + "064174419885c000411a103b200041003b01e801200241810820014102100c417441838fc0004116103b200041003b" + "01e801200241810820014102100d417441998fc000411b103b200041003b01e8014101200241810820014102100e41" + "7441b48fc0004116103b20024181081012417441b285c000411e103b20024181081013417441d085c0004123103b41" + "0120024181081014417441f385c000411e103b200241812010154174419186c0004116103b418382c00041810841cc" + "81c000410b41d781c000410e1017417441e581c0004109103b418382c000410d41cc81c00041810841d781c000410e" + "1017417441e581c0004109103b418382c000410d41cc81c000410b41d781c0004181081017417441e581c000410910" + "3b200041003b01e8012002418108200141021016417441ca8fc0004119103b200041003b01e80141bb9bc000418108" + "41bb9bc0004114200141021023417441e38fc0004114103b200041003b01e801200541142005411420024181082001" + "41021024417441f78fc000411b103b200041003b01e8012009418108200541142001410210254174419290c000411e" + "103b418382c000410d200820002802a00141001000417341a786c000410f103b200042d487b6f4c7d4b1c0003700e0" + "01418382c000410d200041e095ebdc036a220441081026417341b686c0004116103b418382c000410d200820002802" + "a001101f417341cc86c0004113103b20044108200041e0016a220841081027417341df86c0004114103b2008410820" + "0441081027417341f386c0004114103b200041003b01e80120044108200841082001410241001028417341b090c000" + "4114103b200041003b01e80120084108200441082001410241001028417341c490c0004114103b200041003b01e801" + "20044108200841082001410241001029417341d890c0004114103b200041003b01e801200841082004410820014102" + "41001029417341ec90c0004114103b200041003b01e8012004410820084108200141024100102a4173418091c00041" + "15103b200041003b01e8012008410820044108200141024100102a4173419591c0004115103b200041003b01e80120" + "04410820084108200141024100102b417341aa91c0004114103b200041003b01e80120084108200441082001410241" + "00102b417341be91c0004114103b200041003b01e801200441084103200141024100102c417341d291c0004114103b" + "200041003b01e801200441084103200141024100102d417341e691c0004113103b2006420037030020034200370300" + "20074200370300200042003703e801200541142005411420014120102e417141f991c000411b103b20064200370300" + "2003420037030020074200370300200042003703e801200541142005411420014120102f4171419492c0004121103b" + "200642003703002003420037030020074200370300200042003703e8012005411420054114200141201030417141b5" + "92c000411e103b200642003703002003420037030020074200370300200042003703e8012005411420054114200141" + "201031417141d392c000411a103b200642003703002003420037030020074200370300200042003703e80120054114" + "20054114200141201032417141ed92c000411b103b2006420037030020034200370300200742003703002000420037" + "03e8012005411420054114200541142001412010334171418893c000411c103b200642003703002003420037030020" + "074200370300200042003703e8012005411420054114200141201034417141a493c0004128103b2006420037030020" + "03420037030020074200370300200042003703e8012005411420054114200141201035417141cc93c000411b103b20" + "0642003703002003420037030020074200370300200042003703e8012005411420054114200141201036417141e793" + "c000411a103b200220002802a001410010094171418787c000411b103b200041003b01e80120054114200220002802" + "a0012001410210184171418194c000411a103b200041003b01e801200220002802a0012001410210194171419b94c0" + "00411d103b200041003b01e801200220002802a00120014102101a417141b894c000411c103b200220002802a00110" + "1b417141a287c000411c103b200220002802a001101c417141be87c000411f103b200041003602e801200220002802" + "a00120014104101d417141d494c000411d103b200041003b01e801200220002802a001200141021008417141f194c0" + "004124103b200041808080083602e801200041003b018e02200220002802a001200141042000418e026a2203410210" + "204171419595c000411e103b200041003b018e02200220002802a00122062005411420022006200341021024417141" + "b395c0004124103b200041003b018e0220054114200220002802a001220620022006200341021024417141d795c000" + "4124103b200041003b018e02200220002802a00120054114200341021037417141fb95c0004122103b200041003b01" + "8e0220054114200220002802a0012003410210374171419d96c0004122103b200041003b018e02200220002802a001" + "20054114200341021038417141bf96c0004129103b200041003b018e0220054114200220002802a001200341021038" + "417141e896c0004129103b200041003b018e02200220002802a0012003410210394171419197c000411c103b200041" + "003b018e02200220002802a0012001410420034102102e417141ad97c000411f103b200041003b018e022002200028" + "02a0012005411441f583c0004114200341021022417141cc97c0004123103b200041003b018e022005411420022000" + "2802a00141f583c0004114200341021022417141ef97c0004123103b200041003b018e02200220002802a001200141" + "0420034102102f4171419298c0004125103b200041003b018e0220094118200220002802a001200341021025417141" + "b798c0004120103b200041003b018e02200220002802a00120014104200341021030417141d798c0004122103b2000" + "41003b018e02200220002802a00120014104200341021031417141f998c000411e103b200041003b018e0220022000" + "2802a001200141042003410210324171419799c000411f103b200041003b018e02200220002802a001200541142001" + "4104200341021033417141b699c0004121103b200041003b018e0220054114200220002802a0012001410420034102" + "1033417141d799c0004121103b200041003b018e02200220002802a00120014104200341021034417141f899c00041" + "2c103b200041003b018e02200220002802a00120034102103a417141a49ac0004120103b200041003b018e02200220" + "002802a00120014104200341021035417141c49ac000411f103b200041003b018e02200220002802a0012001410420" + "0341021036417141e39ac000411e103b200041003b018e02200220002802a00141dd87c00041202003410210184171" + "41819bc000411d103b418382c000410d200220002802a001101e417141fd87c0004120103b418396abdd03410d41dd" + "87c0004120410010004173419d88c0004110103b418396abdd03410d200841081026417341ad88c0004117103b4183" + "96abdd03410d20054114101e417341c488c0004115103b418396abdd03410d41ab82c0004108101f417341d988c000" + "4114103b200220002802a001200241810841001000417441ed88c000410e103b200241810842011001417441fb88c0" + "004112103b418382c0004181082008410810264174418d89c0004115103b418382c00041810820054114101e417441" + "a289c0004113103b418382c00041810841ab82c0004108101f417441b589c0004112103b418382c000410d20022000" + "2802a001101f417141c789c0004116103b200041003b018e02200220002802a001200541142003410210254171419e" + "9bc000411d103b418382c000410d200220002802a00141021000417141dd89c0004114103b4101410020054114101e" + "410041f189c0004117103b20004190026a240041010f0b0b418080c000410b417f20032003417f4e1bac1001000b0b" + "a61b0200418080c0000b89046572726f725f636f64653d54455354204641494c45442424242424205354415254494e" + "47205741534d20455845435554494f4e202424242424746573745f616d656e646d656e74616d656e646d656e745f65" + "6e61626c656463616368655f6c6574785f6172725f6c656e686f6d655f6c655f6172725f6c656e6c655f6172725f6c" + "656e74785f696e6e65725f6172725f6c656e686f6d655f6c655f696e6e65725f6172725f6c656e6c655f696e6e6572" + "5f6172725f6c656e7365745f6461746174657374206d65737361676574657374207075626b65797465737420736967" + "6e6174757265636865636b5f7369676e66745f666c6167736e66745f786665725f66656574657374696e6720747261" + "636574726163655f61636374400000000000005f74726163655f616d74400000000000000074726163655f616d745f" + "7a65726f706172656e745f6c6467725f686173685f6e65675f70747274785f6172725f6c656e5f696e76616c69645f" + "736669656c6474785f696e6e65725f6172725f6c656e5f6e65675f70747274785f696e6e65725f6172725f6c656e5f" + "6e65675f6c656e74785f696e6e65725f6172725f6c656e5f746f6f5f6c6f6e6774785f696e6e65725f6172725f6c65" + "6e5f7074725f6f6f6263616368655f6c655f7074725f6f6f6263616368655f6c655f77726f6e675f6c656e55534430" + "303030303030303030303030303030300041b184c0000b8a1774726163655f6e756d5f6f6f625f737472686f6d655f" + "6c655f6172725f6c656e5f696e76616c69645f736669656c646c655f6172725f6c656e5f696e76616c69645f736669" + "656c64616d656e646d656e745f656e61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61" + "626c65645f746f6f5f6c6f6e6774785f696e6e65725f6172725f6c656e5f746f6f5f6269675f736c696365686f6d65" + "5f6c655f696e6e65725f6172725f6c656e5f746f6f5f6269675f736c6963656c655f696e6e65725f6172725f6c656e" + "5f746f6f5f6269675f736c6963657365745f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f73" + "6c69636574726163655f78666c6f61745f6f6f625f736c69636574726163655f616d745f6f6f625f736c696365666c" + "6f61745f636d705f6f6f625f736c69636531666c6f61745f636d705f6f6f625f736c6963653263616368655f6c655f" + "77726f6e675f73697a655f75696e743235366e66745f666c6167735f77726f6e675f73697a655f75696e743235366e" + "66745f786665725f6665655f77726f6e675f73697a655f75696e743235363030303030303030303030303030303030" + "30303030303030303030303030303174726163655f616363745f77726f6e675f73697a655f6163636f756e745f6964" + "74726163655f6f6f625f737472696e6774726163655f78666c6f61745f6f6f625f737472696e6774726163655f6163" + "63745f6f6f625f737472696e6774726163655f616d745f6f6f625f737472696e6774726163655f746f6f5f6c6f6e67" + "74726163655f6e756d5f746f6f5f6c6f6e6774726163655f78666c6f61745f746f6f5f6c6f6e6774726163655f6163" + "63745f746f6f5f6c6f6e6774726163655f616d745f746f6f5f6c6f6e6774726163655f616d745f77726f6e675f6c65" + "6e67746874726163655f696e76616c69645f61735f68657874726163655f616363745f636865636b5f646573796e63" + "6c6467725f696e646578706172656e745f6c6467725f74696d65706172656e745f6c6467725f68617368626173655f" + "666565686f6d655f6c655f6669656c646c655f6669656c6474785f696e6e6572686f6d655f6c655f696e6e65726c65" + "5f696e6e65727368613531325f68616c666e66745f7572696e66745f6973737565726e66745f7461786f6e6e66745f" + "73657269616c706172656e745f6c6467725f686173685f6e65675f6c656e706172656e745f6c6467725f686173685f" + "6275665f746f6f5f736d616c6c706172656e745f6c6467725f686173685f6c656e5f746f6f5f6c6f6e67636865636b" + "5f69645f6f6f625f6c656e5f753332636865636b5f69645f77726f6e675f6c656e5f753332666c6f61745f66726f6d" + "5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f6c656e5f75696e7436346163" + "636f756e74726f6f745f69645f6c656e5f6f6f626163636f756e74726f6f745f69645f77726f6e675f6c656e747275" + "73746c696e655f69645f6c656e5f6f6f625f63757272656e637974727573746c696e655f69645f77726f6e675f6c65" + "6e5f63757272656e6379616d6d5f69645f6c656e5f6f6f625f617373657432616d6d5f69645f6c656e5f77726f6e67" + "5f6c656e5f617373657432616d6d5f69645f6c656e5f77726f6e675f6e6f6e5f7872705f63757272656e63795f6c65" + "6e616d6d5f69645f6c656e5f77726f6e675f7872705f63757272656e63795f6c656e616d6d5f69645f6d707474785f" + "6669656c645f696e76616c69645f736669656c64686f6d655f6c655f6669656c645f696e76616c69645f736669656c" + "646c655f6669656c645f696e76616c69645f736669656c6474785f696e6e65725f746f6f5f6269675f736c69636568" + "6f6d655f6c655f696e6e65725f746f6f5f6269675f736c6963656c655f696e6e65725f746f6f5f6269675f736c6963" + "657368613531325f68616c665f746f6f5f6269675f736c696365616d6d5f69645f746f6f5f6269675f736c69636563" + "726564656e7469616c5f69645f746f6f5f6269675f736c6963656d70746f6b656e5f69645f746f6f5f6269675f736c" + "6963655f6d70746964666c6f61745f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f736c6963" + "6532666c6f61745f7375625f6f6f625f736c69636531666c6f61745f7375625f6f6f625f736c69636532666c6f6174" + "5f6d756c745f6f6f625f736c69636531666c6f61745f6d756c745f6f6f625f736c69636532666c6f61745f6469765f" + "6f6f625f736c69636531666c6f61745f6469765f6f6f625f736c69636532666c6f61745f726f6f745f6f6f625f736c" + "696365666c6f61745f706f775f6f6f625f736c696365657363726f775f69645f77726f6e675f73697a655f75696e74" + "33326d70745f69737375616e63655f69645f77726f6e675f73697a655f75696e7433326e66745f6f666665725f6964" + "5f77726f6e675f73697a655f75696e7433326f666665725f69645f77726f6e675f73697a655f75696e7433326f7261" + "636c655f69645f77726f6e675f73697a655f75696e7433327061796368616e5f69645f77726f6e675f73697a655f75" + "696e7433327065726d697373696f6e65645f646f6d61696e5f69645f77726f6e675f73697a655f75696e7433327469" + "636b65745f69645f77726f6e675f73697a655f75696e7433327661756c745f69645f77726f6e675f73697a655f7569" + "6e7433326e66745f7572695f77726f6e675f73697a655f75696e743235366e66745f6973737565725f77726f6e675f" + "73697a655f75696e743235366e66745f7461786f6e5f77726f6e675f73697a655f75696e743235366e66745f736572" + "69616c5f77726f6e675f73697a655f75696e743235366163636f756e74726f6f745f69645f77726f6e675f73697a65" + "5f6163636f756e745f6964636865636b5f69645f77726f6e675f73697a655f6163636f756e745f696463726564656e" + "7469616c5f69645f77726f6e675f73697a655f6163636f756e745f69643163726564656e7469616c5f69645f77726f" + "6e675f73697a655f6163636f756e745f69643264656c65676174655f69645f77726f6e675f73697a655f6163636f75" + "6e745f69643164656c65676174655f69645f77726f6e675f73697a655f6163636f756e745f6964326465706f736974" + "5f707265617574685f69645f77726f6e675f73697a655f6163636f756e745f6964316465706f7369745f7072656175" + "74685f69645f77726f6e675f73697a655f6163636f756e745f6964326469645f69645f77726f6e675f73697a655f61" + "63636f756e745f6964657363726f775f69645f77726f6e675f73697a655f6163636f756e745f696474727573746c69" + "6e655f69645f77726f6e675f73697a655f6163636f756e745f69643174727573746c696e655f69645f77726f6e675f" + "73697a655f6163636f756e745f6964326d70745f69737375616e63655f69645f77726f6e675f73697a655f6163636f" + "756e745f69646d70746f6b656e5f69645f77726f6e675f73697a655f6163636f756e745f69646e66745f6f66666572" + "5f69645f77726f6e675f73697a655f6163636f756e745f69646f666665725f69645f77726f6e675f73697a655f6163" + "636f756e745f69646f7261636c655f69645f77726f6e675f73697a655f6163636f756e745f69647061796368616e5f" + "69645f77726f6e675f73697a655f6163636f756e745f6964317061796368616e5f69645f77726f6e675f73697a655f" + "6163636f756e745f6964327065726d697373696f6e65645f646f6d61696e5f69645f77726f6e675f73697a655f6163" + "636f756e745f69647369676e6572735f69645f77726f6e675f73697a655f6163636f756e745f69647469636b65745f" + "69645f77726f6e675f73697a655f6163636f756e745f69647661756c745f69645f77726f6e675f73697a655f616363" + "6f756e745f69646e66745f7572695f77726f6e675f73697a655f6163636f756e745f69646d70746f6b656e5f69645f" + "6d707469645f77726f6e675f6c656e677468004d0970726f64756365727302086c616e677561676501045275737400" + "0c70726f6365737365642d6279010572757374631d312e38372e30202831373036376539616320323032352d30352d" + "303929002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c732b087369676e2d65" + "7874"; extern std::string const kBadAlignWasmHex = - "0061736d01000000011b046000017f60057f7f7f7f7f017f60067f7f7f7f7f7f017f600000022a0203656e760f666c" - "6f61745f66726f6d5f75696e74000103656e760c636865636b5f6b65796c6574000203050403000000050301000306" - "470b7f004180080b7f00418088020b7f004180080b7f00418088040b7f00418088040b7f00418088080b7f00418008" - "0b7f00418088080b7f004180800c0b7f0041000b7f0041010b07cc0110066d656d6f72790200115f5f7761736d5f63" - "616c6c5f63746f72730002057465737431000307655f64617461310300057465737432000407655f64617461320301" - "047465737400050c5f5f64736f5f68616e646c6503020a5f5f646174615f656e6403030b5f5f737461636b5f6c6f77" - "03040c5f5f737461636b5f6869676803050d5f5f676c6f62616c5f6261736503060b5f5f686561705f626173650307" - "0a5f5f686561705f656e6403080d5f5f6d656d6f72795f6261736503090c5f5f7461626c655f62617365030a0a9902" + "0061736d01000000011b046000017f60057f7f7f7f7f017f60067f7f7f7f7f7f017f60000002260203656e760f666c" + "6f61745f66726f6d5f75696e74000103656e7608636865636b5f6964000203050403000000050301000306470b7f00" + "4180080b7f00418088020b7f004180080b7f00418088040b7f00418088040b7f00418088080b7f004180080b7f0041" + "8088080b7f004180800c0b7f0041000b7f0041010b07cc0110066d656d6f72790200115f5f7761736d5f63616c6c" + "5f63746f72730002057465737431000307655f64617461310300057465737432000407655f64617461320301047465" + "737400050c5f5f64736f5f68616e646c6503020a5f5f646174615f656e6403030b5f5f737461636b5f6c6f770304" + "0c5f5f737461636b5f6869676803050d5f5f676c6f62616c5f6261736503060b5f5f686561705f6261736503070a" + "5f5f686561705f656e6403080d5f5f6d656d6f72795f6261736503090c5f5f7461626c655f62617365030a0a9902" "0402000b2801017f418108427f370000418108410841a308410c41001000220041a40828020020004100481b0b5f01" "017f419a88024191a4cca00136010041928802428994ace0d0c1c38710370100418a88024281848ca0d0c0c1830837" "010041818802417f360000418a8802411441818802410441a3880241201001220041a4880228020020004100481b0b" diff --git a/src/test/app/wasm_fixtures/ledgerSqn.c b/src/test/app/wasm_fixtures/ledgerSqn.c index e4d57b8593..1366dee618 100644 --- a/src/test/app/wasm_fixtures/ledgerSqn.c +++ b/src/test/app/wasm_fixtures/ledgerSqn.c @@ -1,11 +1,11 @@ #include -int32_t get_ledger_sqn(uint8_t *, int32_t); +int32_t ldgr_index(uint8_t *, int32_t); int finish() { uint32_t sqn; - int32_t result = get_ledger_sqn((uint8_t *)&sqn, sizeof(sqn)); + int32_t result = ldgr_index((uint8_t *)&sqn, sizeof(sqn)); if (result < 0) return result;